我是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关系编写单向映射?
谢谢
答案 0 :(得分:0)
是的,这很重要。如果cascade
仅在父项上定义,则当您对父项进行任何更改并将其保留时,对子项的基本更改也将执行,但是更改子项不会影响父级实体。相同,当唯一的子实体级联更改时。