0

我想使用休眠对两个表执行完全外连接。

这两个表没有任何外键主键关系。

表格1。

valcode nvarchar2(10)
value number
datemodified date

表 2

id number
result nvarchar2(10)

SQL查询:

select a.valcode, b.id, b.result from table1 a,table2 b (+) on a.valcode=b.id order by a.valcode

如何将此查询转换为带有表类中注释的休眠查询?

4

2 回答 2

0

这确实是一个好问题。我还没有遇到这个问题;所以,我对任何可能的解决方案也很感兴趣。

如果我理解正确,这两个表之间没有任何“自然”关系。因此,我不确定是否有一种简单有效的方法可以使用 HQL 或 Criteria 来使用 Hibernate。

如果您使用所需的 SQL 创建视图并将该视图与 Hibernate 实体映射,怎么样?

于 2013-03-18T17:57:01.783 回答
0

据我从 Hibernate 文档中了解到,您可以在关系注释上使用 fetch 属性并将其设置为FetchType.EAGER

您可以急切地或懒惰地获取关联的实体。fetch 参数可以设置为FetchType.LAZYFetchType.EAGER。EAGER 将尝试使用外连接选择来检索关联对象,而 LAZY 只会在第一次访问关联对象时触发选择。 @OneToMany@ManyToMany关联默认为 LAZY, @OneToOne并且@ManyToOne默认为 EAGER。

您可以在此处找到完整的文档。

于 2016-01-21T16:09:14.900 回答