私が得たと仮定します
class Father{
private Integer fatherId;
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="FATHERID", nullable=false)
public Integer getFatherId() {
return fatherId;
}
Set<Son> sons;
@OneToMany(fetch=FetchType.LAZY)
@JoinColumn(name="FATHERID")
public Set<Son> getSons() {
return airlineFlights;
}
}
と息子
class Son{
Integer sonId
@Id
@GeneratedValue(generator="identity")
@GenericGenerator(name="identity", strategy="identity")
@Column(name="SONID", nullable=false)
public Integer getSonId() {
return sonId;
}
Father father;
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="FATHERID", nullable=false)
public Father getFather() {
return father;
}
}
今、私がこのコードを取得したと仮定しましょう:
Father f = session.load(Father.class, 1);
f.getSons();
fは単純なPOJOであり、息子のコレクションは怠惰なので、ここで何が起こりますか?データベースへのアクセスとそれらの息子のクエリはどのように行われていますか?単純なgetが呼び出される単純なJVMにいますが、そこで休止状態はどのように機能しますか?
編集:getSons()が呼び出されるとどうなりますか?完全なサイケールを与えることができますか?