问题描述
我正在寻找一个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);
1楼
当您要寻找包含某个实例的集合时,为什么不简单地使用Equals
:
Set<User> findAllByLocationsEquals(Location location);
要么
Set<User> findAllByLocationsIdEquals(Integer locationId);