15

我正在尝试使用PagingAndSortingRepository带有find MyEntity where field in fieldValues查询的spring,如下所示:

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

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

}

但没有成功。

我希望上述函数返回其字段与字段值之一匹配的所有实体,但它只返回空结果

尽管这似乎是一种非常直接的能力,但我在文档中找不到任何对它的引用。

是/如何实现的?

谢谢。

4

2 回答 2

22

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

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

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

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

} 
于 2016-01-17T11:38:25.980 回答
5

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

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

于 2016-01-17T11:39:35.773 回答