0

我只需要 HQL 中的一个简单示例(无条件),其中我有两个表需要在“int”类型的列上与左外连接连接。我在后端有 Sybase。

我已经查看了很多地方(甚至在这个站点上)并包括了文档,但没有发现它们对初次使用的用户太有用。

考虑我有表'First'和表'Second',连接列'empID'为'int'。如何使用命名查询将外部联接 First 与 second 分开。还请指定是否需要对第一类和第二类的 hbm 文件进行任何其他映射更改。我相信这将有助于简化许多 Hibernate 新手的连接。

编辑:

empID 是一个肯定存在于表 First 中的值,可能存在也可能不存在于表 Second 中。它只是指一个员工。

4

2 回答 2

1

这是不可能的。仅当两个实体之间存在关联时才可能进行连接。

如果你有,你可以做你想做的事:

  • 从 First 到 Employee 的 ManyToOne 或 OneToOne 关联
  • 从 Employee 到 Second 的 OneToMany 或 OneToOne 关联

在这种情况下,查询看起来像

select first from First first
inner join fetch first.employee employee
left join fetch employee.second(s) second
where ...
于 2012-11-14T12:44:27.197 回答
0
select ... from First as f, Second as s where f.employee.Id = s.employee.Id
于 2012-11-14T13:03:59.047 回答