我有这个问题:
SELECT *
FROM A a
WHERE NOT EXISTS (SELECT 1
FROM AB m
WHERE m.a_id = a.id
AND EXISTS (SELECT 1
FROM B b
WHERE m.b_id = b.id
AND b.TYPE = 'C'))
我需要在 Hql 中编写它。
我已经在 AEntity
和 BEntity
类中映射了多对多关系,这样 AEntity
就有 linkedBs
和 BEntity
有 linkedAs
我想要一个不太详细的查询版本。
编辑
问题是我们没有表 AB
的任何 hibernate 实体,因为它只是一个 JoinTable。因此,请提供一种无需显式使用表 AB 即可编写此查询的方法。
最佳答案
试试这个:
您可以在 entityA 和 entityB 之间使用笛卡尔积,然后检查中间表中是否不存在这对
SELECT a
FROM entityA a, entityB b
WHERE NOT EXISTS(
SELECT 'couple'
FROM ab m
WHERE m.id = a.id AND m.id = b.id)
关于java - 如何对多对多关系执行存在查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48151991/