【问题标题】:What is purpose of using cascade={CascadeType.TYPE_NAME}使用 cascade={CascadeType.TYPE_NAME} 的目的是什么
【发布时间】:2017-01-10 05:52:22
【问题描述】:

我正在通过 spring 项目,在一些模型类中有类型

cascade={CascadeType.ALL}

写入参数例如:,

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

私人用户用户;

我的问题是我们应该出于什么目的使用它?

谢谢你。

【问题讨论】:

  • 谷歌搜索“休眠级联”应该为您提供一些答案...

标签: java spring hibernate cascade


【解决方案1】:

该属性表示与类(Outer class)的对象关联的所有(因为CascadeType.ALL)操作将对User类(Inner class)的关联对象执行。

例如:

@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)

【讨论】:

    猜你喜欢
    • 2017-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-31
    • 2011-10-17
    • 2015-11-17
    • 1970-01-01
    相关资源
    最近更新 更多