Как написать сложный запрос соединения с JPA - PullRequest
1 голос
/ 09 августа 2011

Как написать этот сложный запрос на соединение с JPA. Некоторые из синтаксисов, которые я обозначил ниже, не работают с JPA.Я использовал их для демонстрации способа построения SQL-запросов, так что извините за это.

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

1 Ответ

3 голосов
/ 09 августа 2011

JPQL необходим для выбора объектов.Ваш запрос кажется невероятно сложным, я бы порекомендовал собственный запрос SQL или упростил его.

JPQL не поддерживает подвыборы в предложении from.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...