JPA 中的空是什么?

What is Empty in JPA?

我创建了一个客户 table 并为名为 loan

的列

我为 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 规范:

If there are no associated entities for a multi-valued relationship of an entity fetched from the database, the persistence provider is responsible for returning an empty collection as the value of the relationship.

Reference