1

我目前正在使用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>

我希望有人能提出一个好的方法。

4

0 回答 0