【问题标题】:Use LEFT JOIN between two table in HQL在 HQL 中的两个表之间使用 LEFT JOIN
【发布时间】:2018-06-15 06:07:09
【问题描述】:

我有两个POJO 课程。一个是 EmployeeTO,另一个是 AddressTO。

EmployeeTO 有一个名为 EmployeeId 的变量,AddressTO 也有一个名为 EmployeeId 的变量。我想使用 HQL 在 EmployeeTO 的 EmployeeId 和 AddressTO 的 EmployeeId 之间应用左连接。

我使用了以下查询。

from EmployeeTO employeeTO LEFT JOIN AddressTO addressTO ON employeeTO .EmployeeId=addressTO.EmployeeId

但它显示错误:

第 1:139 行:意外标记:ON

【问题讨论】:

  • 它们是否与 ManyToOne 等映射?
  • @MaciejKowalski 否 但是 EmployeeTO 表包含所有 EmployeeID 而 AddressTO 表包含一些 EmployeeID,这些 EmployeeID 也存在于 EmployeeTO 中
  • 使用 WITH 子句代替 ON

标签: java hibernate hql hibernate3


【解决方案1】:

HQL 连接中没有 ON 子句:

from EmployeeTO e
left join e.addressTO

这假定您的Employee 实体类有一个名为addressTO 的AddressTO 字段。

【讨论】:

  • 在 e.addressTO addressTO 中的 a 会是小写吗?
  • @VishalMittal 所有名称都应与底层实体匹配。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-06-21
  • 1970-01-01
  • 2015-05-16
  • 1970-01-01
  • 2019-06-13
  • 2019-08-12
  • 1970-01-01
相关资源
最近更新 更多