由于 重复性的操作十分烦琐,尤其是在处理多个彼此关联对象情况下,此时我们可以使用级联(Cascade)操作。级联 在关联映射中是个重要的概念,指当主动方对象执行操作时,被关联对象(被动方)是否同步执行同一操作。
在实际的项目中,经常可以使用到级联的操作。本周也在级联上遇到了问题。
级联类型
jpa的级联类型(Cascade Types)包括:
ALL
PERSIST
MERGE
REMOVE
REFRESH
DETACH
ALL类型包括所有的jpa级联类型和Hibernate的级联类型。具体的使用方法,就是在实体的关联注解上使用级联类型:
@Entity
public class Student {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
Long id;
String name;
@OneToMany(cascade = CascadeType.ALL)
List courseList = new ArrayList<>();
.......
}
@Entity
public class Course {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
Long id;
String name;
.....
}
PERSIST