1.cascade=”none”,默认值,告诉Hibernate忽略关系。
2.cascade=”save-update”告诉Hibernate在下面这些情况导航关联:当事务提交时,当对象传给save()或update()方法并保存新初始化的瞬时实例及把更改持久到分离实例时。
3. cascade=”delete”告诉Hibernate当对象传给delete()时导航关联并删除持久实例。
4.cascade=”all”意思是save-update和delete都级联,就像调用evict和lock。
5.cascade=”all-delete-orphan”,跟cascade=”all”一样,但是除此之外,Hibernate 删除任何已经从关联(例如,从集合)删除(不再被引用)的持久实体实例。
6.cascade=”delete-orphan”,Hibernate 将会删除任何已经从关联(例如,从集合)删除(不再被引用)的持久实体实例。
Session session = sessions.openSession();
Transaction tx = session.beginTransaction();
Category computer = (Category) session.get(Category.class, computerId);
Category laptops = new Category("Laptops");
computer.getChildCategories().add(laptops);
laptops.setParentCategory(computer);
tx.commit();
session.close();
级联时为save-updatecomputer 实例是持久的(绑定到session),childCategory关联已经打开了级联保存。因此,这段代码导致调用tx.commit()时新的laptops目录成为持久的,因为Hibernate级联脏数据检查到computer 的儿子。Hibernate执行INSERT 语句