使用INNER JOIN在HQL中连接两个表

时间:2015-03-13 21:54:59

标签: sql hibernate hql inner-join hibernate-mapping

我有一个需要转换为HQL查询的SQL查询。

我有一个包含一组组件的类Item。 Item的SQL表是DBO.W_ITEM,Component的表是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 个答案:

答案 0 :(得分:1)

您不需要使用ON子句来定义绑定列,Hibernate将从模型中定义的关系推断出它,HQL查询应该适合您

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