最近有时间空闲下来,开始学习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的能够同我一同学习,共同进步。