EclipseLink Удалить Каскад

Я занимаюсь разработкой веб-приложения, работающего на сервере Glassfish. Я использую JPA с реализацией EclipseLink.

Это мои два класса сущностей. Я представляю отношения между ними ниже. Когда я запускаю сервер Glassfish и удаляю сущность урока, работает Каскад. Он удаляет все тестовые объекты этого. Затем я добавляю сущность урока и тестовую сущность, связанную с ним. Но когда я пытаюсь удалить сущность урока, в это время Cascade не работает и выдает ошибку "ограничение внешнего ключа". После перезапуска Сервера Cascade снова работает.??? В чем разница? Почему операция Каскад работает только при запуске?

Спасибо.

@Entity
public class Lesson implements Serializable {

    ...

 @OneToMany( fetch = FetchType.LAZY, cascade = { CascadeType.MERGE, CascadeType.REMOVE }, mappedBy = "lesson" )
private List< Test >        tests;

    ...
}

@Entity
public class Test implements Serializable {

   ...

   @ManyToOne( targetEntity = Lesson.class, fetch = FetchType.LAZY )
   @JoinColumn( name = "lessonNo", insertable = true, updatable = true, nullable = false )
   private Lesson               lesson;

   ...
}

0 ответов

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