【criteria CascadeType】级联的不同情况

使用criteria进行增删改查操作,可能会发生级联删除的情况,例如对员工表进行删除,可能会级联删除掉部门表中的某一条信息【类似这样的情况】

 

对此,我们可以在实体类中对级联的关系进行管理:

 

 

对于criteria 的  CascadeType属性说明一下:【转】

CascadeType.PERSIST只有A类新增时,会级联B对象新增。若B对象在数据库存(跟新)在则抛异常(让B变为持久态) 

CascadeType.MERGE指A类新增或者变化,会级联B对象(新增或者变化) 

CascadeType.REMOVE只有A类删除时,会级联删除B类; 

CascadeType.ALL包含所有; 

CascadeType.REFRESH没用过。 

综上:大多数情况用CascadeType.MERGE就能达到级联跟新又不报错,用CascadeType.ALL时要斟酌下CascadeType.REMOVE 

 

posted @ 2016-09-09 13:19  Angel挤一挤  阅读(344)  评论(0编辑  收藏  举报