предположим я получилспящий режим - что когда father.getSons сложилось,() вызывается, когда коллекция ленив
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, и коллекция сыновей ленива, так что будет здесь? Как gonig в базу данных и запрос для этих сыновей, мы в простой JVM, где вызывается простой get, как работает hibernate?
EDIT: Что происходит, когда getSons(), называется, вы можете дать полный цикл?
возможно дубликат (http://stackoverflow.com/questions/2192242/what-is -lazy-load-in-hibernate) – BalusC