`
jamesby
  • 浏览: 381348 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

Hibernate学习篇(1)

阅读更多

        最近有时间空闲下来,开始学习Hibernate,粗读了一下有关Hibernate方面的书籍。一直以来都是流览别人的文章和帖子,很少自己写些东西与人分享,固想将学习Hibernate的整个历程能够在这里记录下来!

       Hibernate就是一个ORM工具,它使我们脱离了繁琐的JDBC代码,使我们能够在持久化方面花费更少的时间、精力,而将更多的时间关注我们的业务逻辑。一直以来数据持久层都是嵌入若干Sql的Jdbc代码,截止到目前为止,本人仍然处于这样的开发状态,但是目前希望改变这种现状但是苦于对Hibernate了解的不够深入,无法承担在使用Hibernate出现无法解决问题所带来的风险,但是我希望经过这段时间的学习后我能够对Hibernate运用。

       Hibernate Mapping File 的配置:

       hibernate-mapping:该元素是Hibernate file文件的根元素,该元素的两个属性比较另人关注,default-cascade和default-lazy,因为刚学习Hibernate,感觉其它的元素不是很关键(个人看法)。

        default-cascade中文意思是默认的级联风格,好象在EJB2.0 CMP的时候有这样一个东西,意思是在有关联关系的两个实体中,删除主实体,也就是多对一的一方,多方会自动删除,这个属性是不是也是这个意思呢?它的值有save-update,none,delete,默认为,none.建议为save-update比较合适,如果设置为delete,则多方也会自动删除(好象听说以前Hibernate不可以嘛,是Hibernate3的新功能?)

   default-lazy :默认加载风格,true表示采用懒装入策略,该策略会使用CGLIB代理生成代理类,即当对象被load的时候,对象的数据并没有从数据库抓取出来.而是在访问属性的时候才抓取.这样必须保证在Session处于打开的状态下取得持久类的属性,或者调用Hibernate.initialize(a)自己手动初始化,或者从新打开session并调用session.refresh()与数据层同步。个人感觉default-lazy=true是不是意义不大啊,当然并没有在项目中使用过Hibernate,所以不敢妄加评论!
       false则表示每次load,Hibernate自动load底层数据库的数据(应该可以通过class或者property的lazy属性避免立刻加载吧)。

       今天就写到这里,下一篇将简单描述对class元素的理解和学习情况。

       以上仅是个人的日常笔记,说对说错还请谅解。毕竟本人刚开始学习这东西,理解肤浅,还望过来人多多指点,也希望初学Hibernate的能够同我一同学习,共同进步。

分享到:
评论
2 楼 wangxiangjunpxp 2006-12-29  
又改用ojdbc14,可存入较大的文本串了。
1 楼 jamesby 2006-11-25  
以后我会将自己的学习过程慢慢发布上来.

相关推荐

Global site tag (gtag.js) - Google Analytics