单向一对一映射休眠

时间:2013-05-28 11:54:52

标签: hibernate jpa annotations one-to-one jointable

我有一个数据库,其中包含三个表,'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。不幸的是,我无法改变数据库。

1 个答案:

答案 0 :(得分:0)

您必须使用@Embeddable注释@AttributeOverride来强制嵌入的实体保留在自己的表中。

请参阅http://en.wikibooks.org/wiki/Java_Persistence/Embeddables