В настоящее время он работает с пользовательским запросом n1ql, однако это такой простой запрос, что я решил просто использовать встроенный метод запроса jpa, однако я не могу понять ключевые слова, потому что я не получить что-нибудь обратно.
Этот код работает:
@Query("SELECT meta().id as _ID, meta().cas as _CAS, * FROM `my-bucket` mb " +
"WHERE mb.name like $1 OR ANY Parent " +
"IN mb.Parents SATISFIES Parent.name like $1 END")
List<MyObject> searchObjectByName(String name);
Это, однако, не работает
@N1qlPrimaryIndexed
public interface MyObjectRepository extends CouchbasePagingAndSortingRepository<MyObject, String> {
List<MyObject> findBySecondObjectNameContains(String name);
}
@Data
@Document
public class MyObject{
@Id
private String objectId;
@Field
private SecondObject secondObject;
}
@Data
public class SecondObject {
@Field
private String name;
}
Мой метод испытаний:
@Autowired
private MyObjectRepository myObjectRepository;
@Test
public void testFind() {
List<MyObject> myObjects = myObjectRepository.findBySecondObjectNameContains("my name");
Assert.assertNotNull(myObjects);
}