Spring 数据存储库 - 查找列表中的字段
Spring Data Repositories - Find where field in list
我正在尝试将 spring PagingAndSortingRepository
与 find MyEntity where field in fieldValues
查询一起使用,如下所示:
@Repository
public interface MyEntity extends PagingAndSortingRepository<MyEntity, String> {
List<MyEntity> findByMyField(Set<String> myField);
}
但是没有成功。
我希望上述函数 return 所有字段与字段值之一匹配的实体,但它只有 return 空结果 .
尽管它看起来是一个非常直接的能力,但我在 docs.
中找不到任何关于它的参考资料
是/如何实现?
谢谢。
如果您在实体中的特定字段上进行搜索并且希望return所有该字段的列表与某个集合中的至少一个条目相匹配,这确实是可能的。文档 here 说这可以使用关键字 In
示例来实现:findByAgeIn(Collection<Age> ages)
等同于 … where x.age in ?1
根据您的 post,我不能 100% 确定这是否是您所追求的用例,但请尝试一下。您将需要搜索特定字段,因此请将 'field' 替换为您要搜索的任何字段。如果您在多个字段上进行搜索,则可以使用 Or
关键字连接结果并以这种方式指定多个字段。
@Repository
public interface MyEntity extends PagingAndSortingRepository<MyEntity, String> {
List<MyEntity> findByFieldIn(Set<String> myField);
}
http://docs.spring.io/spring-data/jpa/docs/current/reference/html/
你的方法名称必须是 findByMyFieldIn
所以你必须在末尾添加一个 In
以获得 where ... in (..)
查询。
我正在尝试将 spring PagingAndSortingRepository
与 find MyEntity where field in fieldValues
查询一起使用,如下所示:
@Repository
public interface MyEntity extends PagingAndSortingRepository<MyEntity, String> {
List<MyEntity> findByMyField(Set<String> myField);
}
但是没有成功。
我希望上述函数 return 所有字段与字段值之一匹配的实体,但它只有 return 空结果 .
尽管它看起来是一个非常直接的能力,但我在 docs.
中找不到任何关于它的参考资料是/如何实现?
谢谢。
如果您在实体中的特定字段上进行搜索并且希望return所有该字段的列表与某个集合中的至少一个条目相匹配,这确实是可能的。文档 here 说这可以使用关键字 In
示例来实现:findByAgeIn(Collection<Age> ages)
等同于 … where x.age in ?1
根据您的 post,我不能 100% 确定这是否是您所追求的用例,但请尝试一下。您将需要搜索特定字段,因此请将 'field' 替换为您要搜索的任何字段。如果您在多个字段上进行搜索,则可以使用 Or
关键字连接结果并以这种方式指定多个字段。
@Repository
public interface MyEntity extends PagingAndSortingRepository<MyEntity, String> {
List<MyEntity> findByFieldIn(Set<String> myField);
}
http://docs.spring.io/spring-data/jpa/docs/current/reference/html/
你的方法名称必须是 findByMyFieldIn
所以你必须在末尾添加一个 In
以获得 where ... in (..)
查询。