前言
这篇主要说明了cascade有什么取值,一级孤儿删除的定义。
分析
技术分析之级联的取值(cascade的取值)和孤儿删除
1. 需要大家掌握的取值如下
* none -- 不使用级联
* save-update -- 级联保存或更新
* delete -- 级联删除
* delete-orphan -- 孤儿删除.(注意:只能应用在一对多关系)
* all -- 除了delete-orphan的所有情况.(包含save-update delete)
* all-delete-orphan -- 包含了delete-orphan的所有情况.(包含save-update delete delete-orphan)
2. 孤儿删除(孤子删除),只有在一对多的环境下才有孤儿删除
* 在一对多的关系中,可以将一的一方认为是父方.将多的一方认为是子方.孤儿删除:在解除了父子关系的时候.将子方记录就直接删除。
* <many-to-one cascade="delete-orphan" />
如果配置文件没有设置delete-orphan的情况下,是设置为null。
如果配置文件配置了delete-orphan的情况下,就是删除。
代码如下:
/**
* 解除关系:从集合中删除联系人
*/
@Test
public void run10(){
Session session = HibernateUtils.getCurrentSession();
Transaction tr = session.beginTransaction();
// 先获取到客户
Customer c1 = session.get(Customer.class, 1L);
Linkman l1 = session.get(Linkman.class, 1L);
// 解除
c1.getLinkmans().remove(l1);
tr.commit();
}