我是 JPA/Hibernate 的新手。假设我有这两个表:
- Employee (Id, Name, DeptId, ..) // DeptId 是外键。
- Department (Id, DeptName, ..) // 部门单独持久化
和如下实体:
@Entity
public class Employee {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private int id;
private String name;
private long salary;
@OneToOne(cascade = {CascadeType.PERSIST})
@JoinColumn(name="DEPT_ID")
private Dept dept;
...
}
@Entity
public class Dept {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private int id;
private String name;
...
**other huge collections with eager fetch ***
}
在我的应用程序 DAO 中,每当我访问 Employee 实体时,我只需要将部门名称作为员工实体的一部分,而不需要从部门表中获取其他任何内容。
- 如何获取部门。仅名称列,而不是员工实体中的整个部门行(需要避免急切地获取部门收集的大量数据)?如果是这样,我应该使用什么注释?
- 在这种情况下如何处理级联?