Hibernate кэш второго уровня и ассоциации - PullRequest
1 голос
/ 15 ноября 2010

Мой классный фильм имеет отношения @OneToOne с режиссером и отношения @ManyToMany с актером.Все эти классы (Movie, Director и Actor) кэшируются в режиме только для чтения, как и коллекции.

Я использую кэш второго уровня Hibernate с ehCache.

Отношения LAZY, поэтому у меня есть следующая проблема: если Movie попадает в кэш второго уровня без вызова getDirector () или getActors (), мы получим LazyInitializationException, если эти методы вызываются впоследствии без Session.merge (), и это невариант для меня.

Я думаю, что моя проблема была бы решена, если бы я мог подключиться к событию «положить в кэш» и вызвать мои ленивые методы.Что-то подобное существует?Я неохотно пишу код пользовательской инфраструктуры, потому что кэширование второго уровня включается / выключается в зависимости от приложения и т. Д.

Я что-то упускаю?

Спасибо.

1 Ответ

0 голосов
/ 16 марта 2011

Если отношения кэшируются, что вы получите, если их извлекать LAZY? Просто включите их в EAGER, и ваша проблема будет решена.

...