Hibernate使用另一个类的id映射主键

时间:2011-12-07 20:08:01

标签: hibernate foreign-keys primary-key

我有两个MySQL表:User(具有自动递增的pk id)和WaitingUser,它是用户子集的列表。 WaitingUsers表不能包含多个用户,因此userId列是PK。

public class User implements Serializable{
   private int id;
   private String userName;
....

TABLE USER:
id               int(10) unsigned PK
userName         varchar(45)

public class WaitingUser implements Serializable{
   private User userId;
   private String otherinfo;
....

TABLE WAITING_USER:
userId               int(10) unsigned PK
otherinfo            varchar(45)

现在我想映射,但我不知道如何继续。

问题似乎与此处报道的类似,但我不使用注释:

Using an Entity (and their Primary Key) as another Entity's Id

如何定义WaitingUser的PK是WaitingUser.xbm.xml文件中的用户PK?

1 个答案:

答案 0 :(得分:1)

来自the hibernate docs

您可以使用hbm.xml将引用类的ID(引用表的主键)映射到引用类(引用表的主键)的id:

<class name="WaitingUser">
  <id name="id">
    <generator class="foreign">
      <param name="property">userId</param>
    </generator>
  </id>
  <one-to-one name="userId" class="User" constrained="true"/>
</class>