JPQL:在子查询的 JOIN 中访问外部属性

JPQL: Access to outer attributes in JOIN of subquery

在我的 JPA 模型中有 3 tables A、B、C。

我的查询是:

SELECT a FROM A a
WHERE EXISTS (
    SELECT c from C c LEFT JOIN B b"
    ON c = b.c AND b.a = a
    WHERE c.date BETWEEN CURRENT_TIMESTAMP AND :pUntil AND b.a IS NULL
)

背景是我希望 A 的所有实体在 b 中没有一个条目将来链接到事件 C。

问题是我得到 Column 'T0.ID' is either not in any table in the FROM list or appears within a join specification and is outside the scope of the join specification or ...

编辑 : 可以认为A是用户table,C是事件,B存储用户对事件的注册。我想获得所有在参数 pUntil.

之前尚未注册所有未来事件的用户

虽然我同意 Neil 的观点,但我通过更改查询解决了这个问题。这是新查询:

SELECT a FROM A a
WHERE EXISTS (
    SELECT c from C c
    WHERE c.date BETWEEN CURRENT_TIMESTAMP AND :pUntil
    AND NOT EXISTS (
        SELECT b from B b
        WHERE b.c= c and b.a = a
    )
)