我有一个数据库,其中包含三个表,'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
' user '表中特定用户的Id对应于'Address'和'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类访问用户Address或ContactDetails。很遗憾,我不能更改数据库。
必须将@Embeddable
注释与@AttributeOverride
一起使用,以强制将嵌入的实体持久化到它们自己的表中。
见http://en.wikibooks.org/wiki/Java_Persistence/Embeddables