1

私は単純なネイティブクエリを持っています:

 SELECT DISTINCT
    *
FROM
    permission p
WHERE
    p.USER_ID = ?
        OR p.ROLE_ID IN (SELECT
            r.id
        FROM
            user u
                JOIN
            role r ON u.ID = r.USER_ID
        WHERE
            r.ROLE_TYPE_ID = ?)

そして、このクエリを次のような名前付きクエリ (JPQL) に変換したいと思います。

SELECT p
FROM Permission p
WHERE p.user =:user OR p.role IN p.user.roles

しかし、問題は、これが機能していないことです: 私はINこのようにユーザーにすることはできません. これを解決する方法についての提案やアイデアはありますか?

どうもありがとうございました!

よろしくお願いします、

JB

4

1 に答える 1

0

基本的には、ネイティブ クエリを JPA First と同じように変換する必要があります。以下のサンプルを参照してください。

SELECT p FROM Permission p

    WHERE 
         p.user =:user 
    OR 
         p.role IN (
                     SELECT r from User as u JOIN u.roles as r where r.roleTypeId = :roleTypeId
                   )

要件に従って条件を追加/変更します。

注 :回答が役に立った場合は、回答を受け入れてください

于 2013-08-03T02:29:14.213 に答える