我有一个数据库,其中包含三个表,'User','Address'和'ContactDetails'。
'User' Table
- Id
- Username
'Address' Table
- Id
- Type ('1' for a home address, '2' for a work address)
- Address
'ContactDetails' Table
- Id
- Email address
“用户”表中特定用户的ID对应于“地址”和“ContactDetails”表中的ID。
我想使用hibernate将这些表作为单个User对象连接在一起,并带有以下变量:
private int id;
private Address homeAddress; // ie where Type = 1
private Address businessAddress; // ie where Type = 2
private ContactDetails contactDetails;
我目前将User,Address和ContactDetails映射到类中,但我很难将它们组合成一个具有上述结构的类。
有人能给我一个关于如何使用注释映射关系的快速示例吗?我不想更改类Address或ContactDetails以包含“User”类型的变量,因为我将只通过User类访问用户地址或ContactDetails。不幸的是,我无法改变数据库。
答案 0 :(得分:0)
您必须使用@Embeddable
注释@AttributeOverride
来强制嵌入的实体保留在自己的表中。
请参阅http://en.wikibooks.org/wiki/Java_Persistence/Embeddables