java - “集合不包含某个项目”的 JPA 查询
问题描述
假设我们有一个Person
包含Set<Book> books
.
要找到所有拥有“Effective Java”一书的人,你可以这样写:
select p from Person p left outer join fetch p.books as b where b.name='Effective Java'
现在,我怎样才能把这个查询放在它的头上,找到所有Person
没有这本书的东西?
select p from Person p "where p.books does not contain book b where b.name='Effective Java'"
解决方案
您可以利用以下NOT EXISTS
关键字:
select p
from Person p
where not exists (
select b from p.books b where b.name = 'Effective Java'
)
推荐阅读
- r - Str_split 只返回字符串的一半
- ios - 如何使标签的背景图像适合标签的框架大小
- python - Pandas Dataframe str.split错误传递的项目数错误
- c# - c# 在构建时替换文件中的标记
- reactjs - reactjs为什么在setState中使用传播运算符
- oracle18c - xepdb1 中的 Oracle 18c XE expdp 特定模式
- c++ - 连续 x 没有。A,然后在 (nx) 个 B 之后
- sapui5 - 获取特定语言环境的 i18n 文本
- python - 如何使用列表理解语法从 2 个列表中返回 2 个列表?
- php - Ajax 表不显示任何内容