У вас есть отношения @OneToMany в классе родителя, сопоставленные с сиротским удалением = «true» и Cascade.ALL.Ошибка с «orphan-removal» при клонировании объекта
Во-первых, я сохраняю родительский объект.
Тогда я клонировать родителя в ManagedBean, как это:
Parent newParent = (Parent) org.apache.commons.lang.SerializationUtils.clone(this.object);
, так что пользователь может внести некоторые изменения и нажмите кнопку Сохранить.
В это время я настойчив newParent, но получить следующее сообщение об ошибке:
##"Caused by: org.hibernate.HibernateException: Don't change the reference to a collection with cascade="all-delete-orphan":package.Parent.children"##
Я действительно не могу понять, почему я получаю эту ошибку, поскольку отношения не требуется. Когда я сначала сохраняю родителя, я ничего не установил для этого отношения, и он работает нормально.
Похож, проблема возникает после клонирования, но я не могу сказать почему!
Может кто-нибудь, пожалуйста, помогите мне с этим?
Спасибо.
Я пробовал оставаться с и без отношения, а затем сериализацию до и после закрытия сессии, но без ошибок. Пожалуйста, укажите шаги или сценарий для повторного создания исключения, а также почтовый код для сопоставления отношений. –
Даже если вы преуспели, сохранение нового клонированного объекта приведет к удалению всех детей-сирот из базы данных, в этом случае вам, вероятно, лучше будет снова загрузить родителя и сохранить новые изменения (ленивые коллекции игнорируются при удалении сироты). – Ziul