我是Hibernate的新手。我曾经读到过,当使用CascadeType.ALL
持久化时,更改是从拥有方传播的。我有下面的例子,我保存了非所有权实体,同时也保存了所有权实体。
class Account {
@OneToMany(mappedBy="account" , cascade=CascadeType.ALL)
List<Transaction> list= new ArrayList<Transaction>();
}
class Transaction {
@ManyToOne
@JoinColumn(name="account_id")
Account account;
}
Account a = new Account("savings");
Transaction t1 = new Transaction("shoe purchase", 45);
t1.setAccount(a);
a.getList().add(t1);
accountRepository.save(a); //If cascaded is on account
哪一方级联有关系吗?在这种情况下,我可以使用CascadeType.PERSIST
。
我的另一个问题是,我们是否为OneToMany
/ManyToOne
关系编写单向Map?
1条答案
按热度按时间nfs0ujit1#
是的,这很重要。如果
cascade
只定义在parent上,当你在parent上做任何修改并持久化它时,那么在children上的基本修改也会被执行,但是改变children不会影响parent实体。相同,当只有子实体级联更改时。