JPA/Hibernate は初めてです。次の 2 つのテーブルがあるとします。
- 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 では、従業員エンティティにアクセスするときはいつでも、従業員エンティティの一部として部門名だけが必要であり、部門テーブルからは何も必要ありません。
- 部門を取得する方法。従業員エンティティの部門行全体ではなく、名前列のみ (部門によって作成された巨大なコレクションの熱心なフェッチを避ける必要があります)? もしそうなら、どの注釈を使用すればよいですか?
- このシナリオでカスケードを処理するには?