私のクラスの映画には、監督と@OneToOneの関係があり、俳優と@ManyToManyの関係があります。これらすべてのクラス(映画、監督、俳優)のクラスは読み取り専用モードでキャッシュされ、コレクションも同様です。
ehCacheでHibernateの第2レベルのキャッシュを使用します。
関係はLAZYであるため、次の問題があります。ムービーがgetDirector()またはgetActors()を呼び出さずに第2レベルのキャッシュに到達した場合、これらのメソッドがその後Session.merge()なしで呼び出されると、LazyInitializationExceptionが発生します。これは私にとっての選択肢ではありません。
「キャッシュに入れる」というイベントにフックして、怠惰なメソッドを呼び出すことができれば、私の問題は解決すると思います。そんなことありますか?アプリケーションなどに応じて第2レベルのキャッシュがオン/オフになるため、カスタムインフラストラクチャコードを作成するのは気が進まない。
私は何か他のものが欠けていますか?
ありがとう。