2

我正在尝试使用有效记录日期模式来简化域模型。

Person to Address 是 OneToMany,但在给定日期它是 OneToOne。

Person 和 Address 都有一个开始和结束日期,以说明随时间的变化。此外,地址可用于两个角色 - 家庭和工作。

我正在使用带有 Hibernate 4.2 扩展的 JPA 2.0。

因此,我希望域对象看起来像这样:

人物类

public class Person {
@Transient
Date effectiveDate; // used to filter Person and Address record by effective date

long id;

Date start;

Date end;

String firstName;

String lastName;

Address home; // not Collection<Address> homeAddresses;

Address work; // not Collection<Address> workAddresses;

}

和地址类

public class Address {

long id;

Date start;

Date end;

String street;

String city;


String state;
}

问题:

1. 即使表在 OneToMany 关联中,是否可以将 @OneToOne 用于 Person to Address 关联?

2. 如何最好地使用 JPA 注释来做到这一点?Hibernate 提供了@Filter,但那不会仍然假设一个 OneToMany 关联吗?

4

0 回答 0