Hibernate映射与外键表

时间:2011-01-20 16:35:18

标签: java hibernate join mapping foreign-keys

我正在尝试使用hibernate创建一个hbm.xml来映射java中的一些持久对象。

My Domain看起来像这样:

属性文件夹,其中有文件夹属性有一个键可以找到文件夹文件夹有一个键可以找到它的根文件夹

public class Property {
  private Folder folder;
  private Set<Folder> rootFolders;
}

public class Folder {
   private String id;
   private String rootfolder;
   private String descriptor;
}

现在有一个 Folder.hbm.xml (以及 Folder.java ),但我无法更改它,我无法在那里添加引用(不可触及的遗产)。所以我无法在那里添加根列表。

我想直接在 Property 中添加它,因此 Property 有两个字段,文件夹 rootFolders

我尝试使用 join set (请参阅下面的内容),但我无法让Hibernate创建正确的Query ... 所以我的问题是:映射是否可行(我不想使用HQL),它会是什么样子?

编辑:我发现文件夹中有一个文件夹列表(并相应更改了说明)。 我到目前为止的代码是:

<set name="rootFolders" table="FOLDER">
        <key column="ID" property-ref="folder.id"/>
        <many-to-many 
            column="ROOTFOLDER"
            class="org.company.Folder"
            property-ref="descriptor"
            />
</set>

我已将文件夹映射到属性(并将其命名为文件夹)。 文件夹有一列 ROOTFOLDER ,它映射文件夹 DESCRIPTOR (虽然它不是主键!)

此外,我尝试使用SQL进行必要的检索(只是为了确保它是可能的):

from 
(select t.logical_id, t.id, t.tariffroot from (PROPERTY p inner join FOLDER f on p.FOLDER_ID = f.ID)) propertyFolders
inner join FOLDER roots on propertyFolders.FOLDERROOT= roots.DESCRIPTOR

0 个答案:

没有答案