2008-05-23

EntityEntry, EntityKey, Cache..Hibernate源码研究碎得(13)

关键字: entityentry, entitykey, cache...
如上篇结束时所言,本篇中着重研究upgradeLock这个方法.   进入方法后第一句就是这个requestedLockMode.greaterThan( entry.getLockMode())判断,若不成立,就马上退出此方法.   有些疑问的是EntityEntry类型的entry里getLockMode有什么意义?再往下追就是EntityEntry里的lockMode是什么时候什么情景下赋值的? ....................... 刚才用Eclipse里实际debug了一番,现在明白了些.  1,那个LockMode所Lock的是缓 ...
Hibernate中"亲子鉴定" 本篇中,我们来看doLoad方法,按上篇的分析方法,我们将这个方法分为三部分: step1,loadFromSessionCache()的调用和对返回结果的判断. step2,loadFromSecondLevelCache()的调用和对返回结果的判断. step3,若上面两个方法的的返回值都为null的话,最后调用loadFromDatasource并返回此方法的返回值. 首先看step1,先不管loadFromDatasource这个方法的执行细节,值得注意的是并没有把结果的判断放入到loadFromDatasource方 ...
2008-05-20

满城尽是Interface,接口真的那么神奇?--Hibernate源码研究碎得(10)

关键字: 满城尽是interface, 接口真的那么神奇?
满城尽是Interface,接口真的那么神奇? 晚饭后由于不能很集中地思考,就大致地看了EntityPersister这个接口的继承关系及其实现类. 呵,真是不看不知道,一看吓一跳,又是一个很庞大的继承树,而且还里有那么多的接口,不禁就感叹了:为什么Hibernate里这么多的接口?这样的接口设计能达到想像的效果么?在解藕合方面真能那么灵验?感觉有些接口过度了,不丁点的小事动不动就来一个接口.说句"大言不惭"的话,在自已的设计中是绝对想不到用这么多接口的. 写着写着,就意识到了:用众多接口而不用众多类是一个以前没想到(或没有这么强烈感觉到)的好处的,那就是利用接口可以视具体情况而做到细粒 ...
上一篇花了很长时间梳理了下SessionImplementor接口与Hibernate里其它关键类和接口的关系并画出类图,最后得出"集万千宠爱于一身的SessionImpl"标题.本篇将接着往下走,下面先看第二句 EntityPersister persister; 声明了一个变量persister.(写到这有两种选择,一是像对SessionImplementor一样对这个EntityPersister接口好好研究一番,这样的话研究的很细,不过一个突出的问题就是由get方法牵连出很多点,分散精力;另一选择是把这个EntityPersister放在当前DefaultLoadEventListe ...
rmn190
搜索本博客
存档
最新评论