Hibernate Cascade:保存父实体而不保存子实体时删除子实体
因此,我有一个schedule对象,它包含一个DateActiveScheduleItems列表。我希望这样,如果我从schedule对象的列表中删除DateActiveScheduleItems项目并使用CrudePository保存该计划,它将从数据库中删除DateActiveScheduleItem,目前,我的代码似乎没有做到这一点。我应该如何更改级联Hibernate Cascade:保存父实体而不保存子实体时删除子实体,hibernate,jpa,spring-data-jpa,Hibernate,Jpa,Spring Data Jpa,因此,我有一个schedule对象,它包含一个DateActiveScheduleItems列表。我希望这样,如果我从schedule对象的列表中删除DateActiveScheduleItems项目并使用CrudePository保存该计划,它将从数据库中删除DateActiveScheduleItem,目前,我的代码似乎没有做到这一点。我应该如何更改级联 @Entity public class Schedule { @Id @GeneratedValue(strategy = Genera
@Entity
public class Schedule {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@ManyToOne
@JoinColumn(name = "user_id")
private User user;
@ManyToOne
@JoinColumn(name = "usergroup_id")
private UserGroup userGroup;
private String description;
private boolean master;//is this a schedule for all supervalus(true) or one supervalu(false)
@OneToMany(mappedBy = "schedule",cascade = CascadeType.ALL)
private List<DateActiveScheduleItem> dateActiveScheduleItems = new ArrayList<>();
@OneToMany(mappedBy = "schedule",cascade = CascadeType.PERSIST)
private List<MusicScheduleItem> musicScheduleItems = new ArrayList<>();
@OneToMany(mappedBy = "schedule",cascade = CascadeType.PERSIST)
private List<AdvertisementScheduleItem> advertisementScheduleItems = new ArrayList<>();
@Basic
@Temporal(TemporalType.DATE)
private java.util.Date dateAdded;
public Long getId() {
return id;
//getters setters
}
孤立删除从关系中删除相应的子对象时,将其删除。所以,若从dateActiveScheduleItems集合中删除1个DateActiveScheduleItem,JPA也会自动从数据库中删除该DateActiveScheduleItem
@OneToMany(mappedBy = "schedule",cascade = CascadeType.ALL, orphanRemoval="true")
private List<DateActiveScheduleItem> dateActiveScheduleItems = new ArrayList<>();
@OneToMany(mappedBy=“schedule”,cascade=CascadeType.ALL,orphaneremovation=“true”)
私有列表dateActiveScheduleItems=new ArrayList();
有关OrphanRemovel的更多信息获取“带有cascade=“all delete orphan”的集合的错误不再被拥有的实体实例引用“如果您碰巧知道那里发生了什么,我将对此发布一个问题,但我必须等到90分钟计时器用完我没有使用这种类型的级联。我总是使用删除参数。这里有人和你有同样的问题。
@OneToMany(mappedBy = "schedule",cascade = CascadeType.ALL, orphanRemoval="true")
private List<DateActiveScheduleItem> dateActiveScheduleItems = new ArrayList<>();