我正在学习春季项目在一些模型课程中有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)