Способ объявить несколько @oneToMany в одной и той же сущности, чтобы избежать org.hibernate.AssertionFailure: Невозможно выполнить удаление
Я работал с кодом, здесь вы, люди, видите, что я использовал два @oneToMany для двух разных сущностей по этой причине, он показывает мне ошибку "org.hibernate.AssertionFailure: Невозможно выполнить удаление, например "
Я искал решение, а затем пришел к следующему post-org.hibernate.AssertionFailure: Невозможно выполнить удаление, например, сообщение может быть полезным для понимания моей проблемы, но решение не ясно. Здесь первое решение, но он или она только что сказали: "Перестановка кода, так что я сначала удаляю ссылки из C в A, а затем приступаю к удалению как B, так и A, кажется, обходит это". Но как?????
Вот мой код, думаю достаточно
@Entity
@Table(name="c")
public class C extends BaseEntity{
/**
*
*/
private static final long serialVersionUID = -5610744565502850451L;
private String cCode;
private String cTitle;
private String cOverview;
@ManyToOne
@JoinColumn(name="user_id")
private UserEntity userEntity;
@OneToMany(mappedBy="cEntity",cascade=CascadeType.ALL,fetch=FetchType.EAGER)
private List<LeEntity> leEntity;
@OneToMany(mappedBy="cEntity",cascade=CascadeType.ALL)
@LazyCollection(LazyCollectionOption.FALSE)
private List<LaEntity> laEntity;
1 ответ
Для правильной обработки двунаправленного отношения @OneToMany необходимо синхронизировать обе стороны, чтобы один родитель удалялся, потомок не сохранял его, а при удалении родителя родитель тоже удалял его.
Эта концепция хорошо объяснена здесь https://docs.jboss.org/hibernate/orm/current/userguide/html_single/Hibernate_User_Guide.html