设为首页 加入收藏

TOP

Hibernate-mapping(一)级联删除
2015-11-21 01:25:45 来源: 作者: 【 】 浏览:0
Tags:Hibernate-mapping 删除

Hibernate作为数据访问层,它通过配置文件(hibernate.properties或hibernate.cfg.xml)和映射文件(***.hbm.xml)把JAVA对象或PO(PersistentObject,持久化对象)映射到数据库中的数据库,然后通过操作PO,对数据表中的数据进行增,删,改,查等操作。

第一个配置文件hibernate.properties我没有用过,现在Hibernate一般是交给Spring管理,多用applicationContex.xml配置文件管理。

第二个(***.hbm.xml)文件,它是hibernate与数据库的对象关系映射文件。结合具体实例,分析实体间的关系,在配置文件中是如何体现的吧。

一般说来,一个(***.hbm.xml)文件,代表了一个实体Model类和一个数据库table的关联,如下:

?


    
     
     
   

?

?

这表明class类myShop.category.vo.Category对应表category;

现在有另外一个类CategorySecond,它和Category类是多对一的关系:

\

Category.hbm.xml配置文件

?


    
     
      
      
       
      
      
      
       
       
        
         
        
       
       
     
     
   

?

?

CategorySecond.hbm.xml配置文件

?


    
     
      
       
      
      
      
       
       
     
     
   

?

?

结合上述2个配置文件,分析Hibernate-mapping配置文件。

在“一”的一方,配置文件中将会配置set节点信息:

Lazy:默认是true使用延迟加载,false表示不延迟加载(即时加载);

Order-by:一的一方set集合内多的一方实体集合的排序方式默认是主键排序 但可以更改;

Inverse:反转。True表示由对方负责控制,false表示由自己控制。true可以减少update语句,提高性能。

Cascade:是否使用级联操作;属性值:

       all:所有情况下均进行关联操作,即save-update和delete。

       none:所有情况下均不进行关联操作。这是默认值。

       save-update:在执行save/update/saveOrUpdate时进行关联操作。

       delete: 在执行delete时进行关联操作。

       all-delete-orphan:当一个节点在对象图中成为孤儿节点时,删除该节点。比如在一个一对多的关系中,Student包含多个book,当在对象关系中删除一个book时,此book即成为孤儿节点。

如果想要实现级联删除,只需配置“一”的一方的set节点: inverse="true"cascade="delete",这样删除“一”的一方后,在多的一方中引用到一的一方的主键的全部记录也会被删除。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇MSSQL远程连接 下一篇DB查询分析器6.04在Windows10上的..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: