我创建了一个客户表,并为名为贷款的列
我为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规范:
如果从数据库中提取的实体,持久性提供程序是负责返回一个空集合作为关系
参考