级联-更改是否也从非所有者方传播?

时间:2019-02-22 23:44:35

标签: hibernate jpa

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

班级帐户{

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

}

类交易{

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

}

帐户a =新帐户(“储蓄”);

    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关系编写单向映射?

谢谢

1 个答案:

答案 0 :(得分:0)

是的,这很重要。如果cascade仅在父项上定义,则当您对父项进行任何更改并将其保留时,对子项的基本更改也将执行,但是更改子项不会影响父级实体。相同,当唯一的子实体级联更改时。