У меня есть 2 таблицы:Hibernate DetachedCriteria в ЕКОМ
orders: id
items: id, orderId, total, flag
Я хотел бы сделать следующий запрос с использованием Hibernate Criteria (DetachedCriteria):
SELECT
o.id,
SUM(i1.total),
SUM(i2.total)
FROM
orders o
LEFT JOIN
(
SELECT
i.orderId as orderId,
SUM(i.total) as total
FROM
items i
WHERE
i.flag = 0
GROUP BY
orderId
) AS i1
ON i1.orderId = o.id
LEFT JOIN
(
SELECT
i.orderId as orderId,
SUM(i.total) as total
FROM
items i
WHERE
i.flag = 1
GROUP BY
orderId
) AS i2
ON i2.orderId = o.id
GROUP BY
o.id
Я знаю, как использовать DetachedCriteri
а для создания subquery в WHERE
, но, как вы можете видеть, мне нужно сделать подзапрос в разделе FROM
. Если это невозможно, возможно, есть способ записать его в SELECT
(внутри SUM()
), потому что этот запрос можно переписать в такую форму.
Мне действительно нужно использовать API критериев, даже если мне нужно передать собственный SQL в запрос.
Я не показывал вам классы или сопоставление, но, как вы можете видеть, это очень простой пример.
Вы не показали нам классы или отображение, но критерии API выражается в терминах объектной модели, а не SQL. – skaffman
Да, я уже говорил это. Этот пример настолько прост, что я не думаю, что здесь нужны классы или сопоставление, потому что, может быть, моя проблема не может быть решена с помощью API критериев. – prostynick
Вы пытались использовать прогнозы для этого? Добавление сопоставления и классов всегда помогает проверять подсказку перед публикацией. – zoidbeck