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

Using an INNER JOIN to join two tables in HQL

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

我有一个 class 项目,其中包含一组组件。 Item 的 SQL table 是 DBO.W_ITEM,Component 的 table 是 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 关键字。

有什么建议吗?

提前致谢!

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

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