#spring #jpa #jpql
#spring #jpa #jpql
Вопрос:
Как преобразовать sql-запрос mysql с помощью criteriaquery этот код:
SELECT a.customer as customer, a.cbgroup, a.cbdept, a.buc, a.customer_group, a.product, a.valuta, a.a_amount, a.cbgroup, b.b_amount, (b.b_amount-a.a_amount) as percentage
FROM (
SELECT a.customer, a.date, a.cbgroup, a.cbdept, a.buc, a.customer_group, a.product, a.valuta, SUM(a.amount) as a_amount FROM summaryfee as a WHERE a.date = '2019-06-30' AND a.cbgroup = 'CORPORATE BANKING 1' GROUP BY a.customer
) AS a INNER JOIN
(
SELECT b.customer, SUM(b.amount) as b_amount FROM summaryfee as b WHERE b.date = '2020-06-30' AND b.cbgroup = 'CORPORATE BANKING 1' GROUP BY b.customer
) AS b
ON a.customer=b.customer AND (b.b_amount-a.a_amount) < 0 ORDER BY CASE WHEN a.customer NOT LIKE '%Transaksi Nasabah%' THEN 0
ELSE 1
END, percentage asc LIMIT 5
Ответ №1:
Вы можете переписать запрос JPQL как запрос критериев, но не любой собственный SQL-запрос.
Проблема с вашим запросом выше заключается в том, что в предложении FROM используются подзапросы.
Язык запросов JPQL и запрос критериев, по крайней мере, до спецификации 2.1 JPA, поддерживают подзапросы только в предложениях WHERE и HAVING.