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



我正在学习春季项目在一些模型课程中有type

= {CascadeType。所有}

写在参数中,例如:,

@ManyToOne(fetch = FetchType.EAGER,cascade= cascadettype . all)@JoinColumn (name ="USER_ID"nullable = false)

private User User;

我的问题是我们应该在什么目的下使用它?

谢谢你。

此属性意味着与类(外部类)的对象相关联的所有(因为cascadettype .ALL)操作将对类User(内部类)的相关对象执行。

例如:

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

如果您试图从数据库中删除Group,将导致删除关联的用户。

Enum cascadtype将帮助您指定要对关联的用户执行哪种操作。

如果你想指定级联执行只是为了删除和持久化,你必须这样做:

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

最新更新