java - Spring Data Repository:集合的“包含”
问题描述
我正在寻找一种 Spring Data 方法来通过检查属性(集合)是否包含元素来获取实体。这里有一个例子:
实体User
:
Long
IDSet<Location>
地点
Spring 数据存储库User
:
Set<User> findAllByLocationsContaining(Location location);
上面提到的示例有效,但文档中没有记录。Is 仅记录用于与LIKE
. 在这种情况下是否有推荐的方法来创建查询?(见文档)
编辑:作为一种解决方法,我同时使用以下自定义查询:
@Query("SELECT u FROM User u LEFT JOIN u.locations l WHERE :location IN l")
public Set<User> findAllByLocationsContaining(@Param("location") Location location);
解决方案
为什么不简单地使用 an Equals
,因为您正在寻找包含某个实例的集合:
Set<User> findAllByLocationsEquals(Location location);
或者
Set<User> findAllByLocationsIdEquals(Integer locationId);
推荐阅读
- python - 为什么训练模型的准确率在tensorflow代码中没有变化?
- r - 在指定多个核心的 slurm 作业中,我如何确定实际使用了多少核心/CPU?
- python - 保存 sklearn 模型管道时的 pickle 替代品
- angular - 在 Asp.net MVC 3 项目中引用和使用 Angular 5+ 组件
- mysql - 创建一个查询 SELECT 然后从找到的结果中插入
- python - 加载标题后如何使python selenium关闭浏览器?
- javascript - jQuery/css 让两个 div 显示在同一行
- php - preg_replace 到 php
- c++ - 如何在 SDL2 文本输入中禁用键重复
- javascript - 在所有主题名称字段上显示错误