我想运行一个sql:
select b.* from A a inner join B b on a.c = b.c where b.status = 1 ;
现在我必须使用Jpa CriteriaQuery,我得到了(Root<A> root
),A和B没有PK&amp; FK,columu c是A和B的FK,那该怎么办?
CriteriaQuery aQuery= cb.createQuery(A.class);
Root<A> aRoot = aQuery.from(A.class);
那么怎么办?
答案 0 :(得分:0)
首先,JPQL does not allow joining to arbitrary other root objects,所以你不能在JPQL中这样做;只允许你加入关系。 其次Criteria只支持JPQL支持的内容,因此您也无法在Criteria中执行此操作。
最接近的是在它们之间有第二个根和CROSS JOIN,或者使用供应商扩展(但是Criteria API可能不允许这样的供应商扩展,因为它的API是固定的,所以你可能不得不使用字符串 - 而不是JPQL。)