lazy="extra"
Java の休止状態でのフェッチに問題があります。
親と子の2つのクラスを作成しました。親クラスでは、次のフィールドを定義しました。
public class Parent{
...
@OneToMany( cascade = CascadeType.ALL, fetch=FetchType.LAZY, mappedBy="parent")
@IndexColumn(name="index", base=1)
**@LazyCollection(LazyCollectionOption.EXTRA)**
private List<Child> children = new ArrayList<Child>();
public List<Child> getChildren() {
return children;
}
public void setChildren(List<Child> children) {
this.children = children;
}
...
}
それぞれ、子クラスには、この親フィールド定義があります
public class Child{
...
@ManyToOne( fetch = FetchType.LAZY, optional = true)
@JoinColumn(name = "parent_ID", nullable = true)
private Parent parent;
public Parent getParent() {
return parent;
}
public void setParent(Parent parent) {
this.parent = parent;
}
...
}
しかし、parent.getChildren().size() を取得するためにユーティリティ クラスを呼び出すと、エラーが発生します。
ロールのコレクションの遅延初期化に失敗しました: com.realcommerce.formsGenerator.entity.Parent.children。セッションがないか、セッションが閉じられませんでした
誰かが私が何を間違えたのか、そしてなぜ私のコードが機能しないのかを理解するのを手伝ってもらえますか