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

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

产品显然是实体之一,看起来就像是在其供应商属性上进行联接,但是将其联接到哪个实体以及将其联接到该实体的什么属性。

请有人向我解释。

我了解SQL,也许我需要进行范式转换,所以请转移我:-)

#1楼 票数: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,即隐式和显式。

编辑:(在这里添加我的评论,以便我可以作为我一直在寻找的答案)

因此,在我看来,“下面”已经有一个连接,并且供应商属性已经具有所有这些信息,并且连接语法只是说您希望使用此特定(已设置)的连接。 因此,它要加入的实际实体及其加入的属性被黑框显示。 我只需要知道未知表上的属性(示例中的名称)即可。

  ask by Graham translate from so

未解决问题?本站智能推荐:

2回复

使用内部联接的简单hql命名查询

我想在我的域/实体对象中执行以下操作: 这样,在我的服务层中就可以做到这一点: 但是,我在HQL中的语法不正确-大约十分钟后,我决定放弃正式文档并在此处询问...? 我的usercat表是这样加入的: 的SQL是这样,它在我的数据库命令提示符下工作正常: 只是我还是休眠文档比较
2回复

HQL:内部联接

我想在我的hql查询中进行内部联接,但是出现了以下错误: 造成原因:org.hibernate.hql.internal.ast.QuerySyntaxException:意外令牌:(... 该查询在sqldeveloper中有效
3回复

为什么此hql语句就像内部联接?

为什么此HQL语句就像内部联接? select user.id, user.allocationVersion, user.tx.statusId, user.userId, user.nameFirst, user.nameLast, user.em
1回复

HQL:HQL查询中的多个内部联接

我的项目中有很多实体,我想通过使用HQL查询从多个实体中检索数据。 在HQL查询中,我尝试使用JOINS从Entities检索数据,但是在执行代码时会生成异常。 以下是例外: 以下是查询: 以下是我的实体:
2回复

HQL内部联接和日期查询

我已经尝试了几个小时才能解决这个问题,但是我找不到解决方案。 我有一个表“ Orders”和一个表“ Events”,其中eventId是Orders中的外键。 我有一个订单列表,现在只按事件过滤,但现在我也希望它按日期过滤,所以我想我要更改查询。 我正在尝试加入事件表,但似乎无法正常
3回复

HQL中的内部联接查询

我无法为内部联接执行HQL,查询在sql执行正确但在HQL中执行不正确。 我不知道我在哪儿。 你的帮助很明显。
1回复

HQL查询。没有映射关系的内部联接实体

我有三个实体。 假设苹果,香蕉和仙人掌。 苹果具有某些属性(颜色,风味...),并且由Banana_id与Banana建立多对一关系。 香蕉具有某些属性(....),并且Apple_id与Apple具有多对一关系。 实体仙人掌-一些属性,通过Banana_id与香蕉多对一关系。 因此
1回复

内部联接的HQL查询和检查NULL失败

我需要选择已链接租用实体的所有客户记录,该实体的字段return_date为null。 以下SQL查询有效: 为什么以下HQL不起作用: 语境: 解: 显然,HQL中使用的字段名称必须取自模型类,而不是来自数据库......