2015-03-13 2 views
0

У меня есть SQL-запрос, который мне нужно преобразовать в запрос HQL.Использование INNER JOIN для объединения двух таблиц в HQL

У меня есть элемент класса, который содержит набор компонентов. Таблица SQL для элемента - DBO.W_ITEM, а таблица для компонента - DBO.W_COMPONENT.

В SQL, у меня не было никаких проблем, делая это как так ...

SELECT 
item.noun, 
comp.type 
FROM 
DBO.W_ITEM item 
INNER JOIN DBO.W_COMPONENT comp ON item.id = comp.id 

Однако, я не могу получить эту работу в HQL.

Я попробовал это, как это ...

SELECT 
item.noun, 
comp.type 
FROM 
InventoryItemInv item 
INNER JOIN item.components comp ON item.id = comp.id 

но HQL, кажется, не знает, что делать с ON - и говорит, что это неожиданный маркер. Согласно всей литературе, HQL поддерживает ключевое слово ON.

Любые предложения?

Заранее благодарен!

ответ

1

Вам не нужно использовать предложение ON, чтобы определить связывающую столбец, Hibernate будет выводить его из отношений, определенных в модели, после HQL запрос должен работать для вас

SELECT item.noun, comp.type 
FROM InventoryItemInv item 
INNER JOIN item.components comp