单向一对一映射hibernate



我有一个数据库,其中包含三个表,'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

最新更新