В Hibernate Envers все связанные коллекции объектов загружаются лениво, независимо от того, какой тип выборки задан. Поэтому при проведении аудита для объекта, имеющего коллекцию других объектов (как проверенных, конечно), коллекция сначала является SetProxy
(ее можно увидеть при отладке).Hibernate Envers: Инициализация Envers Proxies
Итак, как мне инициализировать этот прокси? Использование Hibernate.initialize()
не имеет эффекта (я подозреваю, что Hibernate и Envers используют разные прокси-объекты). Я знаю, что могу инициализировать набор, повторяя его элементы, но это не вариант для меня, потому что у меня есть несколько коллекций в сущности и не говоря уже о проблемах обслуживания.
Мне нужно инициализировать их с нетерпением, потому что я получаю доступ к коллекции в более поздний момент времени, когда сеанс Hibernate уже закрыт (преобразование объектов домена в dtos).
Я использую Hibernate 3.5.6.
Я не могу заставить это работать! Кажется, что Envers игнорирует план извлечения! У меня есть несколько объектов, настроенных на оживленную выборку с режимом выборки SELECT (потому что я знаю, что они всегда находятся в кеше второго уровня - только для чтения и вечны).Я получаю ленивые ошибки инициализации при рендеринге JSP. БОЛЬ В ВАС-ЗНАТЬ-ЧТО. :(Grrr! – les2