を使用して3層アプリケーションとして設計されたアプリケーションで非常に混乱する問題に直面しています* SpringデータJPA(1.8.2.RELEASE)、Hibernate(4.3.10.Final)のデータレイヤー * Spring管理サービスレイヤのPojos(@Service beans) * GUIレイヤーのWicket(7.2.0)遅延ロードはデータベースに依存していますか?
GUIレイヤーでJPAマネージドBeanを使用するときに発生する可能性のある問題を認識しています(レイジーローディング、 、ハッシュコードなど)。 Wickets LoadableDetachableModelsを使用して、各リクエスト中にすべての単一のエンティティをリロードします。
ここでは、ユーザーがツリー内のエンティティを選択できるページがあります。エンティティは前述のようにLoadableDetachableModel内にカプセル化されます。このエンティティは、別のエンティティと1:nの関係にあります。ツリーを介してエンティティを選択する場合、1:nの関係がアクセスされ、よく知られているorg.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.isb.bppm.wm.model.Product.children, could not initialize proxy - no Session
の例外が導かれる。
これは、DB2をデータベースとして構成する場合にのみ発生するため、非常に混乱します。ローカル開発では、同じコードが前述の例外を引き起こさない、メモリapache derbyで使用しています。これまでのところ私の分析では、データベースは2つの構成の違いだけである。 SpringのOpenEntityManagerInViewFilterをリクエストごとに使用するので、セッションが開いていない状況は決して起こらないはずです。
あなたの誰かが似たような問題に直面していて、何が間違っているかもしれないかのヒントを与えることができますか?
非常に難しい(非常に基本的な)例もあります。すべてのLoadableDetachableModelが正しくデタッチされていますか?標準のwicketコンポーネントに渡すか、onDetach()メソッドで切り離すかのいずれかで –
私は月曜日にそれをチェックします。ヒントありがとうございます。今はモデルがすべてsetDefautModel()によって設定されていると思います。その月曜日にコメントします –