当前位置: 代码迷 >> java >> Spring数据存储库:集合的“包含”
  详细解决方案

Spring数据存储库:集合的“包含”

热度:104   发布时间:2023-07-26 14:32:08.0

我正在寻找一个Spring Data方法来通过检查属性(集合)是否包含元素来获取实体。 这里是一个例子:

实体User

  • Long ID
  • Set<Location>位置

User Spring数据存储库:

Set<User> findAllByLocationsContaining(Location location);

上面提到的示例有效,但是未在文档中进行记录。 仅在与LIKE进行String比较时记录Is。 在这种情况下,是否有推荐的方法来创建查询? (请参阅 )


编辑:作为一种解决方法,在此期间,我正在使用以下自定义查询:

@Query("SELECT u FROM User u LEFT JOIN u.locations l WHERE :location IN l")
public Set<User> findAllByLocationsContaining(@Param("location") Location location);

当您要寻找包含某个实例的集合时,为什么不简单地使用Equals

Set<User> findAllByLocationsEquals(Location location);

要么

Set<User> findAllByLocationsIdEquals(Integer locationId);
  相关解决方案