我目前正在使用hibernate,并且已经尝试了几个星期来找到以下问题的解决方案。与往常一样,无法更改表格。
有两个这样的表:
Table 1
-> ID
-> REF_ID
-
Table 2
-> ID
ID 是每个表的主键。REF_ID 大多为 0,但有时包含有效 ID。
所以我希望在休眠中实现类似的东西:
select
....
from
Table1 this_
inner join
Table2 this_1_
on this_.ID=this_1_.ID
or this_.REF_ID=this_1_.ID
我必须在 java 代码中应用某些标准,所以我可能无法使用 HQL。另外我已经在使用其他表的代码,所以理想情况下我想使用映射文件。我当前的映射文件如下所示:
<hibernate-mapping>
<class name="Table1" table="Table1">
<id name="ID" type="string">
<column name="ID" />
</id>
<join table = "Table2" fetch = "join">
<key column ="ID"/>
</join>
</class>
</hibernate-mapping>
我希望有人能提出一个好的方法。