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

我正在尝试将SpringPagingAndSortingRepositoryfind MyEntity where field in fieldValues查询一起使用,如下所示:

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

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

}

但没有成功。

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

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

是否/如何实现这一目标?

谢谢。


解决方案

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

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

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

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

} 

相关文章