В Hibernate Envers все связанные коллекции объектов загружаются лениво, независимо от того, какой тип выборки задан. Поэтому при проведении аудита для объекта, имеющего коллекцию других объектов (как проверенных, конечно), сборка сначала является SetProxy
(это можно увидеть при отладке).
Итак, как мне инициализировать этот прокси? Использование Hibernate.initialize()
не имеет эффекта (я подозреваю, что Hibernate и Envers используют разные прокси-объекты). Я знаю, что могу инициализировать набор, повторяя его элементы, но это не вариант для меня, потому что у меня есть несколько коллекций в сущности и не говоря уже о проблемах обслуживания.
Мне нужно инициализировать их с нетерпением, потому что я получаю доступ к коллекции в более поздний момент времени, когда сеанс Hibernate уже закрыт (преобразование объектов домена в dtos).
Я использую Hibernate 3.5.6.