HQL内部联接 - 请用简单的术语解释

时间:2015-03-31 12:50:40

标签: hql

在HQL教程中,它给出了以下示例:

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

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

请有人向我解释。

我理解SQL,也许我需要一个范例转换,所以请转发我: - )

1 个答案:

答案 0 :(得分:1)

现在你的查询不完整,因为你没有指定你要加入这两个表的实体。

这两个表可以加入如下:

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

因此,这意味着您的表格产品和供应商通过表格中的ID列加入( ID可以替换为表格中显示的其他名称

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

编辑:(在此处添加我的评论,以便我可以选择我想要的答案)

所以在我看来,#34;""已经存在一个连接,并且supplier属性已经具有所有这些信息,并且连接语法只是表示您希望使用此特定(已设置)连接。因此,它所加入的实际实体以及它所加入的属性都是黑盒子。我需要知道的是未知表上的属性(示例中的名称)。