【发布时间】:2011-09-29 05:25:48
【问题描述】:
我需要在部门和个人之间创建一对多的休眠关系(一个部门有很多人)。
问题是我想保持时间有效性。如果没有 ORM (hibernate),很容易在指定日期选择特定部门的人员:
select * from Person where department_id = ? and ? between validFrom and validTill
如何使用 JPA 休眠?
class Department {
Long id;
String code;
String name;
@OneToMany(fetch = FetchType.LAZY, mappedBy = "departmentId")
@OnDelete(action = OnDeleteAction.CASCADE)
private Set<Person> persons = new HashSet<Person>();
}
class Person {
Long id;
String name;
String surname;
Date validFrom;
Date validTill;
}
如果部门也是有效的怎么办?
select P.* from Person P, Deparment d
where d.code = ? and
p.department_id = d.department_id and
? between d.validFrom and d.validTill and
? between p.validFrom and p.validTill
具有相同deparment.code的所有记录为一个部门。
【问题讨论】:
-
为什么不让 Eclipse 为你做注释?
-
因为它不是标准注释所以 Eclipse 无法做到:)
-
[这里回答了。][1] [1]:stackoverflow.com/questions/7594812/…
标签: hibernate jpa one-to-many