1

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 と FK がありません。columu c は A と B の FK です。

    CriteriaQuery aQuery= cb.createQuery(A.class);
    Root<A> aRoot = aQuery.from(A.class);

それではどうすればいいですか?

4

1 に答える 1

0

まず、JPQL では任意の他のルート オブジェクトへの結合が許可されていないため、JPQL ではそれを行うことができません。関係に沿って参加することのみを許可します。次に、Criteria は単に JPQL がサポートするものをサポートするだけなので、Criteria でもそれを行うことはできません。

最も近いのは、2 番目のルートとそれらの間に CROSS JOIN を配置するか、ベンダー拡張機能を使用することです (ただし、Criteria API は API が固定されているため、そのようなベンダー拡張機能を許可しない可能性が高いため、文字列ベースの JPQL を使用する必要があります)代わりは)。

于 2016-09-06T07:07:22.940 に答える