【问题标题】:Cascade - changes are propagated from non owning side as well?级联 - 更改也从非拥有方传播?
【发布时间】:2019-07-17 02:47:55
【问题描述】:

我是 Hibernate 的新手。我已经读过,当使用 cascade.ALL 持久化时,更改是从拥有方传播的。我有以下示例,其中我正在保存非拥有实体,并且拥有实体也被保存。

类帐户{

@OneToMany(mappedBy="account" , cascade=CascadeType.ALL)
List<Transaction> list= new ArrayList<Transaction>();

}

类交易{

@ManyToOne
@JoinColumn(name="account_id")
Account account;

}

Account a = new Account("储蓄");

    Transaction t1 = new Transaction("shoe purchase", 45);

    t1.setAccount(a);

    a.getList().add(t1);


    accountRepository.save(a); //If cascaded is on account

在哪一侧级联上是否重要。在这种情况下,我可以使用 cascade.PERSIST

我的另一个问题是我们是否为 OneToMany/ManyToOne 关系编写单向映射?

谢谢

【问题讨论】:

    标签: hibernate jpa


    【解决方案1】:

    是的,这很重要。如果cascade 仅定义在父实体上,当您对父实体进行任何更改并将其持久化时,子实体的基本更改也会执行,但更改子实体不会影响父实体。同样,当只有子实体级联更改时。

    【讨论】:

    • 一个比另一个好?也可以在两边都有级联吗?
    • 是的,我投票了,但由于我是这个网站的新手,所以没有显示。
    • 完成:) 非常感谢您为我澄清这一点
    猜你喜欢
    • 2012-12-12
    • 1970-01-01
    • 1970-01-01
    • 2020-04-09
    • 2017-06-08
    • 2019-08-03
    • 2019-09-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多