hibernate
sunrenen
这个作者很懒,什么都没留下…
展开
-
Hibernate源码研究碎得(1)
1, Collections.unmodifiableMap( new HashMap(0) ); 看到了这样的语句,不知道个unmodifiableMap在实际中有什么用? 是说整个执行过程中,某一个变量所指向的Instance没有是不可modifiable的吧?而不是这个Map中的具体内容. 这样再结合应用的上下文就通了. ...原创 2009-12-08 15:18:32 · 89 阅读 · 0 评论 -
Hibernate源码研究碎得(十二)
Hibernate中"亲子鉴定"本篇中,我们来看doLoad方法,按上篇的分析方法,我们将这个方法分为三部分: step1,loadFromSessionCache()的调用和对返回结果的判断. step2,loadFromSecondLevelCache()的调用和对返回结果的判断. step3,若上面两个方法的的返回值都为null的话,最后调用loadFromDatasou...原创 2009-12-08 15:32:31 · 96 阅读 · 0 评论 -
Hibernate源码研究碎得(十一)
在这篇中本来是没想着画EntityPersister接口继承关系及其实现类的类图,可看着看着觉得这个继承关系很壮美,也就很想看到它的全貌,于是就有在这另一篇博客里的类图.言归正传,来看DefaultLoadEventListener类里的load方法,这个方法里可分为如下三步: step1,判断并处理instanceToLoad不为null时的情况. step2,做实质的doLoa...原创 2009-12-08 15:31:33 · 93 阅读 · 0 评论 -
Hibernate源码研究碎得(十)
满城尽是Interface,接口真的那么神奇?晚饭后由于不能很集中地思考,就大致地看了EntityPersister这个接口的继承关系及其实现类.呵,真是不看不知道,一看吓一跳,又是一个很庞大的继承树,而且还里有那么多的接口,不禁就感叹了:为什么Hibernate里这么多的接口?这样的接口设计能达到想像的效果么?在解藕合方面真能那么灵验?感觉有些接口过度了,不丁点的小事动不动就来一...原创 2009-12-08 15:29:55 · 82 阅读 · 0 评论 -
Hibernate源码研究碎得(九)
上一篇花了很长时间梳理了下SessionImplementor接口与Hibernate里其它关键类和接口的关系并画出类图,最后得出"集万千宠爱于一身的SessionImpl"标题.本篇将接着往下走,下面先看第二句 EntityPersister persister;声明了一个变量persister.(写到这有两种选择,一是像对SessionImplementor一样对这个EntityPer...原创 2009-12-08 15:29:09 · 89 阅读 · 0 评论 -
Hibernate源码研究碎得(八)
上一篇重点介绍了LoadEventListener里的LoadType这个static final类及其在LoadEventListener里的定义的几个对象后,简单地介绍了DefaultLoadEventListener里的三个static final属性,现在在这篇中将重点研究这里的onLoad方法. 进入onLoad方法后,第一句就是从event中getSession,这个返回值...2009-12-08 15:28:10 · 84 阅读 · 0 评论 -
Hibernate源码研究碎得(七)
LoadEventListener中的LoadType接着上一篇,我们来看方法fireLoad(event, LoadEventListener.GET);第一个参数就是前面已经准备好的LoadEvent对象,我们重点看下第二个参数.这个fireLoad的签名是这样的: fireLoad(LoadEvent event, LoadType loadType)追着看下...原创 2009-12-08 15:26:35 · 126 阅读 · 0 评论 -
Hibernate源码研究碎得(六)
从源码层面来看load与get的区别(二): Hibernate源码研究碎得(5)接着上一篇问题的引入,本篇中我们先从Session里我们很熟悉的get(Class entityClass, Serializable id)起步.小菜这用的例子是Hibernate里自带那个, 程序的入口为下面的Java语句: person = (Person) session.get(Person...原创 2009-12-08 15:25:32 · 104 阅读 · 0 评论 -
从源码层面来看load与get的区别(一): Hibernate源码研究碎得(5)
在写以前先跟着源码的执行大致地看了看这两个方法所涉及的东西,一下子感觉到对这两个方法的比较将对以后session里的众多方法乃至整个Hibernate的研究都会起到很大的促进作用,由于这两个方法所涉及的东西很多,估计能写出10篇左右的Blog,我也就不用担心这些天写Blog没什么要出手的了.**************************************************...原创 2009-12-08 15:24:23 · 115 阅读 · 0 评论 -
hibernate源码研究碎得(4)
1, 为什么在new一个Configuration对象时要调用另一个构造方法呢?而另一个构造方法里接收一个传来的SettingsFactory的参数,难倒说在new一个Configuration时还可以另行指定自造的SettingsFactory?这就像Configuration类里的configure()方法那样?调用无参的configure()方法时就去找那个默认的配置文件,但也是另行指定配置...原创 2009-12-08 15:22:17 · 78 阅读 · 0 评论 -
hibernate源码研究碎得(3)
谢谢Hibernate.鼓捣Hiberante的源码有一段日子也,回过头来看看这段路,不由地想起"感触颇多"这个词了:从刚开始的"为伊消的人憔悴"到现在的渐入佳境,再往前看尽管还有很长的路要走,不过现在很想说"谢谢Hibernate!"看了Hiberate源码,我不再浮躁.在Java的学习/应用路上,是有了点点收获,有了这些收获后,也不知道怎么回事,心就静不下来,这个了觉得容易,那...原创 2009-12-08 15:21:15 · 146 阅读 · 0 评论 -
Hibernate源码研究碎得(2)
1, 为什么tables用的是TreeMap这个类呢?而别的大都用的是HashMap2, Environment.getProperties()每次调用都是新建一个Properties对象,把这个对象传对调用者.这样做用什么特殊的好处呢?3, 怪,怎么会出现一模一样的两行LogInfo呢? [2008-05-05 09:16:36,750] INFO org.hibernate....原创 2009-12-08 15:19:48 · 57 阅读 · 0 评论 -
Hibernate源码研究碎得(十三)
如上篇结束时所言,本篇中着重研究upgradeLock这个方法. 进入方法后第一句就是这个requestedLockMode.greaterThan( entry.getLockMode())判断,若不成立,就马上退出此方法. 有些疑问的是EntityEntry类型的entry里getLockMode有什么意义?再往下追就是EntityEntry里的lockMode...原创 2009-12-08 15:33:18 · 102 阅读 · 0 评论