Hibernate 删除主表记录并删除副表记录解决方法

公司的OA。采用SSH(Spring+Struts1.0+Hibernate) 小弟接触Hibernate不久,写的文章难免有些地方欠妥,如有不对之处,请给我留言或用QQ(941867223)联系我及时更改,以免误导别人。谢谢!

 

数据库表字段太多了,暂时不贴出来了,如有需求者用QQ联系我发到邮箱就行了:

 

 

 

我要删除员工记录功能

 

Employee.hbm.xml配置文件如下:

 

 

   

       

           

           

       

       

           

       

       

           

       

       

           

       

       

           

       

       

           

       

       

           

       

       

           

       

       

           

       

       

           

       

       

           

       

       

           

               

           

           

       

       

           

               

           

           

       

       

           

               

           

           

       

       

           

               

           

           

       

       

           

               

           

           

       

       

           

               

           

           

       

       

           

               

           

           

       

       

           

               

           

           

       

       

           

               

           

           

       

        cascade="all-delete-orphan">

           

               

           

           

       

   

 

 

 

RoleInfo.hbm.xml配置文件如下:

 

   

       

           

           

       

       

           

       

       

           

       

       

           

       

       

           

       

       

           

               

           

           

       

       

           

               

           

           

       

   

 

 

 

EmpRole.hbm.xml配置文件如下:

 

 

   

       

           

           

       

       

           

       

       

           

       

   

 

此配置文件是关联员工和角色的中间表,在写cascade="all"时,(注意RoleInfo不要写cascade="call",不然要把此表中被删除员工的角色相同的所有相关记录都会被删除。)像这样就能把员工的记录删除了

 

总结:

  1、在做级联删除时,一定要把被删除的表之间关系弄清楚,不然hibernate就要删除问题了。

  2、在被删除对象的配置文件中,把与被删除对象有关系的对象  在一对多中设置cascade="all-delete-orphan"就能实现级联删除了。

 

 

 

你可能感兴趣的:(Hibernate)