JPA удалить запись об удалении из коллекции - PullRequest
0 голосов
/ 01 июня 2018

У меня есть проект весенней загрузки с JPA.Мне нужен Hibernate, чтобы удалить запись из базы данных, когда она удаляется из коллекции сущностей, а затем вызывается сохранение для этой сущности.Это возможно.Например,

@Entity
@Table(name="TABLEA")
public class Parent {
  @Id
  @Column(name = "TABLEA_ID")
  private Integer id;
  @OneToMany(fetch=FetchType.EAGER, cascade=CascadeType.ALL, orphanRemoval=true)
  @JoinColumn(name="TABLEB_FK", referencedColumnName="TABLEA_ID")
  private List<Child> children; // ??
} 

@Entity
@Table(name="TABLEB")
public class Child {
  @Id
  @Column(name = "TABLEB_ID")
  private Integer id;  
  @Column(name = "TABLEB_FK")
  private Integer fkId;  

}

В этом классе сущностей у меня есть метод, который сортирует, какие объекты в коллекции все еще существуют.В некоторых случаях конкретный дочерний объект удаляется из коллекции и вызывается сохранение для родительского объекта.К сожалению, я получаю ORA-01407: невозможно обновить ("TABLEB". "TABLEB_FK") до NULL.Похоже, что hibernate обновляет отношение до нуля, прежде чем удаляет сирот, и база данных имеет ограничение не равное нулю для этого столбца.У меня есть вся обработка для добавления / удаления объектов в классе сущности, поэтому я не могу явно вызвать delete для отдельного объекта и надеялся каскадно удалить это из родительского объекта, выполнив сохранение.Это может быть невозможно.Любая помощь приветствуется.Спасибо.

...