Java 如何对多对多关系执行exists查询
我有一个疑问:Java 如何对多对多关系执行exists查询,java,sql,database,hibernate,hql,Java,Sql,Database,Hibernate,Hql,我有一个疑问: 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
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实体,因为它只是一个连接表。因此,请提供一种不用显式使用表AB编写此查询的方法。尝试以下方法:
你可以在EntYTA和EntYTB之间使用笛卡尔积,然后检查中间表中的这对夫妇
是否存在。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)
这不会给我相同的结果请发布一个数据集和一个期望的结果集