Способ объявить несколько @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

Другие вопросы по тегам