【发布时间】:2021-09-05 02:23:47
【问题描述】:
我创建了一个客户表并为称为贷款的列
我为 1 行传递 null
我将 '' 传递给另一行
当我执行这个查询时
SELECT c FROM Customer c WHERE c.loans IS EMPTY
我什么也得不到。
【问题讨论】:
我创建了一个客户表并为称为贷款的列
我为 1 行传递 null
我将 '' 传递给另一行
当我执行这个查询时
SELECT c FROM Customer c WHERE c.loans IS EMPTY
我什么也得不到。
【问题讨论】:
IS EMPTY 运算符在逻辑上等同于 IS NULL,但用于集合。
查询可以使用 IS EMPTY 运算符或 IS NOT EMPTY 来检查集合关联路径是否解析为空集合或具有至少一个值。
我们可以使用 EMPTY 来检查属性是否为空。
以下 JPQL 展示了如何使用 EMPTY 来获取没有项目的员工。
Query unassignedQuery =
em.createQuery("SELECT e " +
"FROM Employee e " +
"WHERE e.projects IS EMPTY");
根据 JPA 2.1 规范:
如果没有多值关系的关联实体 从数据库中获取的实体,持久性提供程序是 负责返回一个空集合作为 关系。
【讨论】: