我想使用hibernate在两个表上执行完全外连接。
这两个表没有任何外键主键关系。
表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
如何将此查询转换为带有表类中注释的hibernate查询?
答案 0 :(得分:0)
这确实是个好问题。我还没有来过这个问题;所以,我对任何可能的解决方案都很感兴趣。
如果我理解正确,这两个表之间没有任何“自然”关系。因此,我不确定使用HQL或Criteria使用Hibernate是否有一种简单有效的方法。
如果使用所需的SQL创建视图并使用Hibernate实体映射此视图,该怎么办?
答案 1 :(得分:0)
据我所知,根据Hibernate文档,您可以在关系注释上使用fetch属性并将其设置为FetchType.EAGER
:
您可以热切地或懒惰地获取关联 实体。 fetch参数可以设置为
FetchType.LAZY
或FetchType.EAGER
。 EAGER将尝试使用外部联接选择 检索关联的对象,而LAZY只会触发一个选择 当第一次访问关联对象时。@OneToMany
和@ManyToMany
关联默认为LAZY和@OneToOne
和@ManyToOne
默认为EAGER。
您可以找到完整的文档here。