我有两个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?
答案 0 :(得分:1)
您可以使用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>