我正在尝试使用有效记录日期模式来简化 领域模型。
要处理的人是OneToMany,但截至给定日期 是OneToOne。
人员和地址都有一个开始和结束日期,以说明随时间的变化。 此外,Address可以用于两个角色 - 家庭和工作。
我正在使用JPA 2.0和Hibernate 4.2扩展。
因此,我希望域对象看起来像这样:
人员类
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用于人员地址关联?
2.如何使用JPA注释做到最好? Hibernate提供了@Filter,但是它还不会假设OneToMany关联吗?