У меня есть SQL-запрос, который должен быть преобразован в HQL. Я попытался преобразовать это, но я получаю эту ошибку:
org.hibernate.hql.internal.ast.QuerySyntaxException: неожиданный токен
Как мне переписать этот SQL-запрос в HQL-запрос?
select ProductsBase.PRODUCT_ID,
ProductsBase.PRODUCT_NAME,
ProductsBase.LIST_PRICE,
CategoryTranslations.CATEGORY_NAME,
CategoryTranslations.CATEGORY_ID
from products_base ProductsBase,
CATEGORY_TRANSLATIONS CategoryTranslations,
PRODUCT_TRANSLATIONS ProductTranslations
where CategoryTranslations.CATEGORY_ID(+) = ProductsBase.CATEGORY_ID
and ProductTranslations.PRODUCT_ID(+) = ProductsBase.PRODUCT_ID
and CategoryTranslations.LANGUAGE = 'EN'
and ProductTranslations.LANGUAGE = 'EN'
and ProductsBase.product_id in
(select PRODUCT_ID
from (SELECT OrderItems.product_id,
max(OrderItems.quantity) as Items_Ordered
FROM order_items OrderItems, products_base ProductsBase
WHERE ProductsBase.product_id = OrderItems.product_id
GROUP By OrderItems.product_id,
ProductsBase.Product_Name,
ProductsBase.category_id
ORDER BY Items_Ordered DESC))
Я попробовал этот HQL, но получил ошибку:
QuerySyntaxException: неожиданный токен
from ProductsBase pr , ProductTranslations prt ,CategoryTranslations ct where ct.productCategoriesBase.categoryId = pr.categoryId and pr.productId = prt.productsBase.productId and ct.language ='EN' and prt.language = 'EN' and pr.productId in
( select subquery.prId from ( select oi.productsBase.productId prId , max(oi.quantity) qoi from OrderItems oi , ProductsBase prin where oi.productsBase.productId = prin.productId group by oi.productsBase.productId , prin.productName , prin.categoryId order by qoi DESC) as subquery )
Что мне делать? Как я могу исправить мою проблему с этим HQL или каким HQL-запросом я могу заменить выше?