首页 文章

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

提问于
浏览
0

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

cascade =

用参数编写,例如:

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

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

谢谢你 .

1 回答

  • 4

    此属性意味着将对类User(Inner class)的关联对象执行与类(外部类)的对象关联的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)
    

相关问题