Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate Cascade:保存父实体而不保存子实体时删除子实体_Hibernate_Jpa_Spring Data Jpa - Fatal编程技术网

Hibernate Cascade:保存父实体而不保存子实体时删除子实体

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

因此,我有一个schedule对象,它包含一个DateActiveScheduleItems列表。我希望这样,如果我从schedule对象的列表中删除DateActiveScheduleItems项目并使用CrudePository保存该计划,它将从数据库中删除DateActiveScheduleItem,目前,我的代码似乎没有做到这一点。我应该如何更改级联

@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<>();