2013-07-31 2 views
0

Я хочу скопировать объект в другой (его свойства). Этот объект является , управляемый Hibernate и имеет ленивые коллекции. PropertyUtils.copyProperties() бросает ленивое исключение.Как скопировать объекты, управляемые Hibernate?

Есть ли способ?

PS: Я не хочу, чтобы unproxy моего объекта, так как я не являюсь его (ее в другом банке)

ответ

0

Вы можете вызвать Hibernate.initialize() на каждую ленивой Collectio вашего исходного объекта перед копированием. Очевидно, что это не будет работать за пределами транзакции, если объект yor отделен от сеанса Hibernate. Таким образом, вы должны инициализировать свои ленивые коллекции достаточно рано.

+0

Спасибо за ответ, но, как я уже сказал, я не хочу отключать объекты (у меня нет доступа к спящему в моей банке) –

+0

Какое исключение вы получаете точно? Это org.hibernate.LazyInitializationException? Если это так, это означает, что транзакция уже выполнена, и объект отсоединен от сеанса Hibernate. – Olaf

+0

Да, это LazyInitializationException. Но я не могу объединить объект, потому что у меня нет доступа к сеансу Hibernate. Есть ли способ скопировать ссылки прокси-сервера? –