У меня есть Couchbase-Document "Group" со списком имен членов группы.Я хочу сделать запрос для всех групп одного человека.Мне удалось сделать это с N1QL ARRAY_CONTAINS - см. Пример кода - но я надеялся, что смогу сгенерировать запрос по имени метода, как это обычно в Spring Data.
Любая помощьпризнателен:)
Я пытался
public List<MyGroup> findAllByMembers(String member);
и public List<MyGroup> findByMembers(String member);
, но они просто возвращают пустой список - я думаю, они пытаются соответствовать целому значению "members" и не распознают егов виде списка - без ошибок.
Код
Мой документ с полем списка
@Data
@Document
public class MyGroup {
private String name;
private List<String> members = new ArrayList<>();
}
Мой репозиторий
@RepositoryDefinition(domainClass = MyGroup.class, idClass = String.class)
public interface MyGroupRepository extends CouchbaseRepository<MyGroup, String> {
//@Query("#{#n1ql.selectEntity} WHERE ARRAY_CONTAINS(members,$1) AND #{#n1ql.filter}")
public List<MyGroup> findAllByMembers(String member);
}
Ожидается
Учитывая "group1" с "member1" в членах.repository.findAllByMembers ( "member1");должен вернуть ["group1"].