【发布时间】:2019-04-25 07:47:41
【问题描述】:
我有一个包含组成员名称列表的 Couchbase 文档“组”。我想查询一个人的所有组。我设法用N1QL ARRAY_CONTAINS 做到了——见代码示例——但我希望我可以像在 Spring Data 中一样从方法名称生成查询。
任何帮助表示赞赏:)
我试过了
public List<MyGroup> findAllByMembers(String member); 和 public List<MyGroup> findByMembers(String member); 但他们只返回一个空列表 - 我猜他们试图匹配整个“成员”值并且不将其识别为列表 - 没有错误。
代码
带有列表字段的我的文档
@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"]。
【问题讨论】:
标签: java n1ql spring-data-couchbase