级联操作的四种类型详解

来源:互联网 发布:易语言调用call源码 编辑:程序博客网 时间:2024/05/16 04:42

前言:使用JPA,创建一对多双向关联实体对象时,需要给一对多的关联指定级联操作。

级联操作有四种类型:级联更新(合并),级联保存,级联刷新,和级联删除。

详情:现在我们分别介绍以上四种级联类型的详细情况。

1.CascadeType.REFRESH 级联刷新(使用场景,当我们从数据库中请求了一条数据,在我们对这条数据进行业务处理的时候,另一个用户可能会修改数据库中的这条数据的记录,那么此时我们就需要进行级联刷新了,否则我们处理的数据就失去了意义。)

2.CascadeType.PERSIST 级联持久化(比如在发出保存订单操作时,会同时发出保存订单项的操作语句)  *订单和订单项之间是一对多的关系。

3.CascadeType.MERGE 级联合并 也就是级联更新(当处于游离状态下的对象被修改了,那么与他相关联的实体中的对象也会执行修改,如果开启了级联更新,那么此实体对象的更新会波及到与其关联的实体对象)

4.CascadeType.REMOVE 级联删除 (比如:如果设置了级联删除,当删除订单时,会同时删除对应的订单项,但是需要注意此操作的先后顺序为先删除订单项,再删除订单)

注:即使我们定义了级联操作,也只有在我们使用EntityManage 对象的api方法时才会生效。比如说当我们调用了refresh();方法时,级联刷新才会生效。当调用了remove()方法时,级联删除才会生效。而使用HQL语句进行删除,则不会触发级联删除操作。

好了,对于级联操作的四种类型就介绍完了,在我们的项目中需要根据具体的业务需求合理应用级联操作。

             

1 0