У меня есть 2 сущностей film
(Parent) и episode
(ребенка) с один-ко-многим, когда я создаю film
объект с коллекцией episode
объектов, все работает нормальный, родительский и связанные дочерние объекты. Но когда я пытаюсь обновить `фильм», удалив букет из „эпизода“ объекты ничего не похоже на работу иззимовать один-ко-многим объекта открепление ребенка от родительских отношений
Вот что я пытаюсь сделать, когда я удалить кучу episode
объектов из film
, эти удаленные объекты должны не удаляется , но сохраняется как эпизод без привязки к любому родительскому объекту. Это возможно?
Film объект
import org.hibernate.annotations.*;
import javax.persistence.*;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.util.Set;
@Entity
@Table(name = "FILM")
@Getter
@Setter
public class Film {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@Column(name = "ORIGINAL_TITLE", nullable = false)
private String originalTitle;
@OneToMany(targetEntity=FilmEpisode.class, mappedBy="film", cascade=CascadeType.ALL,fetch=FetchType.EAGER, orphanRemoval = true)
private Set<FilmEpisode> filmEpisodes;
@Column(name = "SHOW_ON_LANDING_PAGE")
private Boolean showOnLandingPage;
}
FilmEpisode объект
import javax.persistence.*;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.util.Set;
@Entity
@Table(name = "FILM_EPISODE")
@Getter
@Setter
public class FilmEpisode {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@Column(name = "ORIGINAL_TITLE", nullable = false)
private String originalTitle;
@ManyToOne
@JoinColumn(name = "FILM_ID")
private Film film;
}
В DAO я просто экономия film
с saveOrUpdate
способом, как показано ниже
session.saveOrUpdate(film);
Я что-то не хватает .. ??
Да, я пробовал, что дочерние объекты, удаленные из коллекции, не обновляются. Поэтому попытался проверить, предоставив 'orphanRemoval = true', даже если это не сработало, не удалось удалить записи для детей. – Amit
Если у вас двунаправленные сопоставления, я считаю, что вам нужно удалить отношение с обеих сторон. –
Итак, вам нужно удалить «Фильм» со стороны «Эпизода». –