0

このタイプのエラーが発生しています。これは、sessionFactory beand と transactionmanager を使用しているためです。基本的に私はグーグルで検索し、列をFetchType.EAGERに設定すると言います。しかし、それを行っても、何も起こらなかったかのように同じエラーが表示されます。助けてください。

ありがとうございました

エラー: org.hibernate.LazyInitializationException: ロールのコレクションの遅延初期化に失敗しました: com.database.entity.User.roles、セッションまたはセッションが閉じられませんでした

POJOS:
@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.EAGER, mappedBy="user")
public Set<Role> getRoles() {
return this.roles;
}
4

3 に答える 3

1

トランザクションの問題である可能性があります。User のフェッチとそのロールの調査の両方を行うメソッド (またはテスト) をアノテーション でマークアップします@Transactional。ユーザーを取得した後、データベース セッションは閉じられます。そのため、ユーザーのロールを取得しようとすると、「セッションがないか、セッションが閉じられていません」というエラーが発生します。

確実に知るには、もう少し情報を提供する必要があります (例: 呼び出しメソッドのコード リスト)。

于 2013-09-26T12:49:30.270 に答える
0

Hibernate.initialize( pojo.getRoles() );Hibernateセッションを閉じる前にやろうと思います。

于 2012-12-04T15:41:06.170 に答える