HQL inner join - 请简单说明

HQL inner join - please explain in simple terms

在一个HQL教程中,给出了以下例子:

select s.name, p.name, p.price
from Product p inner join p.supplier as s

产品显然是实体之一,看起来它正在加入其供应商 属性,但它加入的是哪个实体以及该实体的 属性 是什么已加入。

请有人给我解释一下。

我理解 SQL,也许我需要范式转换,所以请转换我:-)

目前您的查询不完整,因为您尚未指定您要加入两个 table 的实体。

两个 table 可以这样连接:

select s.name, p.name, p.price
from Product p inner join p.supplier as s
on p.id = s.id  --This specifies the entity which you are using to join the table

所以这意味着您的 table 产品和供应商由 table 中存在的 id 列连接(id 可以替换为您的 table 中存在的其他名称table)

如果您的 table 定义了一对多关系,那么也是可能的。请注意,HQL 支持两种类型的 JOINS,即隐式和显式。

编辑:(在这里添加我的评论,这样我就可以勾选我正在寻找的答案)

所以在我看来 "underneath" 已经有一个连接并且供应商 属性 已经有了所有这些信息并且连接语法只是说你想使用这个特定的(已经设置)加入。因此,它所连接的实际实体和它所连接的属性都被黑盒化了。我只需要知道未知 table(示例中的名称)上的属性。