2011-08-09 19 views
1

JPAでこのような複雑な結合問合せを作成するには、構文のいくつかをJPAでは使用できません。私は、SQLクエリをビルドする必要があることを示すためにそれらを使用しているので、残念です。JPAで複雑な結合問合せを書く方法

SELECT Result1.name1, Result1.count1, Result2.name2, Result2.count2 FROM (
    SELECT 
     taskOne.user.name AS name1, 
     COUNT(taskOne.taskId) AS count1 
    FROM 
     Task AS taskOne 
    INNER JOIN 
     taskOne.defect AS defectOne 
    WHERE (
     defectOne.defId = taskOne.defect.defId 
     AND 
     taskOne.taskCategory.tcaId = 1 
    ) 
    GROUP BY 
     taskOne.user.usId 
) AS Result1 
FULL JOIN (
    SELECT 
     taskTwo.user.name AS name2, 
     COUNT(taskTwo.taskId) AS count2 
    FROM Task AS taskTwo 
    INNER JOIN taskTwo.defect AS defectTwo 
    WHERE (
     defectTwo.defId = taskTwo.defect.defId 
     AND 
     taskTwo.taskCategory.tcaId = 2 
    ) 
    GROUP BY taskTwo.user.usId 
) 
AS Result12 
WHERE Result1.name1 = Result12.name2 

答えて

2

オブジェクトの選択にはJPQLが必要です。あなたのクエリは信じられないほど複雑に思えますが、ネイティブのSQLクエリをお勧めします。

JPQLはfrom句のサブ選択をサポートしていません。

+0

こんにちはJames!フィードバック返信ありがとう、はい現在、私は "entityManager.createNativeQuery(" sqlQuery ")としてネイティブクエリを使用しています。よいひとときを! – Channa

関連する問題