春季数据存储库 - 查找列表中的字段位置

我正在尝试使用spring进行查询,如下所示:PagingAndSortingRepositoryfind MyEntity where field in fieldValues

@Repository
public interface MyEntity extends PagingAndSortingRepository<MyEntity, String> {

    List<MyEntity> findByMyField(Set<String> myField);

}

但没有成功。

我期望上面的函数返回其字段与其中一个字段值匹配的所有实体,但它只返回空结果

尽管这似乎是一个非常直接的能力,但我在文档中找不到任何参考。

是/如何实现这一点?

谢谢。


答案 1

如果您正在搜索实体中的特定字段,并且希望返回与某个集合中至少一个条目匹配的所有字段的列表,则这确实是可能的。这里的文档说这可以使用关键字 example 来实现:并且等效于InfindByAgeIn(Collection<Age> ages)… where x.age in ?1

从你的帖子中,我不是100%确定这是否是你所追求的用例,但试一试。您需要搜索特定字段,因此请将“字段”替换为您正在搜索的任何字段。如果要搜索多个字段,则可以将结果与关键字连接起来,并以这种方式指定多个字段。Or

@Repository
public interface MyEntity extends PagingAndSortingRepository<MyEntity, String> {

    List<MyEntity> findByFieldIn(Set<String> myField);

} 

答案 2

http://docs.spring.io/spring-data/jpa/docs/current/reference/html/

您的方法名称必须是,因此您必须在末尾添加一个以获取查询。findByMyFieldInInwhere ... in (..)


推荐