学习Hibernate主要不是在学习Hibernat怎么配置,用工具怎么生成hbm文件,如果你把重点放在这里,基本上等于白学了Hibernate。Hibernate的精华在于无与伦比的灵巧的对象持久层设计,这些持久层设计经验不会因为你不用Hibernate而丧失掉,我自己学习Hibernate,已经明显感觉到对持久层设计能力已经长了很多经验值了,这些经验甚至不光可以用在Java上,用在.net上也是一样。
遇到的问题
set属性,自动更新的问题
当这个对象 还与 Session关联时,操作属性 会导致 该对象的数据版本 更新。
如果希望与session脱离 ,使用 session.evict(obj)。
hibernate存在2个缓存
* 第一级别的缓存是 Session 级别的缓存,它是属于事务范围的缓存(session的一级缓存)(查询产生session的快照)
* 第二级别的缓存是 SessionFactory 级别的缓存,它是属于进程范围的缓存(二级缓存