使用cascade = {CascadeType.TYPE_NAME}的目的是什么

时间:2016-09-02 07:39:57

标签: spring hibernate cascade

我正在经历spring项目,在某些模型类中有类型

  

级联= {CascadeType.ALL}

用参数编写,例如:,

  

@ManyToOne(fetch = FetchType.EAGER,cascade = CascadeType.ALL)   @JoinColumn(name =“USER_ID”,nullable = false)

     

私人用户;

我的问题是我们应该使用这个目的的目的是什么?

谢谢你。

1 个答案:

答案 0 :(得分:4)

此属性表示将为类(内部类)的关联对象执行与类(外部类)的对象关联的ALL(因为CascadeType.ALL)操作。

例如:

@Entity
public class Group {

@ManyToOne(fetch = FetchType.EAGER, cascade=CascadeType.ALL)
@JoinColumn(name="USER_ID", nullable=false)
private User user`

如果您尝试从数据库中删除组,则会导致删除关联用户。

Enum CascadeType将帮助您指定要对关联用户执行的操作类型。

如果你想指定级联执行只是为了删除和持久化,你必须做类似的事情:

@ManyToOne(cascade = {CascadeType.REMOVE, CascadeType.PERSIST}, fetch = FetchType.EAGER)