自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 问答 (14)
  • 收藏
  • 关注

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

如上篇结束时所言,本篇中着重研究upgradeLock这个方法. 进入方法后第一句就是这个requestedLockMode.greaterThan( entry.getLockMode())判断,若不成立,就马上退出此方法. 有些疑问的是EntityEntry类型的entry里getLockMode有什么意义?再往下追就是EntityEntry里的lockMode是什么时候什么情景下赋值...

2008-05-23 08:41:33 360

甚是无奈的"亲子鉴定"--Hibernate源码研究碎得(12)

Hibernate中"亲子鉴定"本篇中,我们来看doLoad方法,按上篇的分析方法,我们将这个方法分为三部分: step1,loadFromSessionCache()的调用和对返回结果的判断. step2,loadFromSecondLevelCache()的调用和对返回结果的判断. step3,若上面两个方法的的返回值都为null的话,最后调用loadFromDatasource并返回此方法...

2008-05-22 08:51:28 157

从源码层面来看load与get的区别(七): Hibernate源码研究碎得(11)

在这篇中本来是没想着画EntityPersister接口继承关系及其实现类的类图,可看着看着觉得这个继承关系很壮美,也就很想看到它的全貌,于是就有在这另一篇博客里的类图.言归正传,来看DefaultLoadEventListener类里的load方法,这个方法里可分为如下三步: step1,判断并处理instanceToLoad不为null时的情况. step2,做实质的doLoad方法,返回O...

2008-05-20 09:09:12 83

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

满城尽是Interface,接口真的那么神奇?晚饭后由于不能很集中地思考,就大致地看了EntityPersister这个接口的继承关系及其实现类.呵,真是不看不知道,一看吓一跳,又是一个很庞大的继承树,而且还里有那么多的接口,不禁就感叹了:为什么Hibernate里这么多的接口?这样的接口设计能达到想像的效果么?在解藕合方面真能那么灵验?感觉有些接口过度了,不丁点的小事动不动就来一个接口.说句...

2008-05-20 09:03:37 94

从源码层面来看load与get的区别(五): Hibernate源码研究碎得(9)

上一篇花了很长时间梳理了下SessionImplementor接口与Hibernate里其它关键类和接口的关系并画出类图,最后得出"集万千宠爱于一身的SessionImpl"标题.本篇将接着往下走,下面先看第二句 EntityPersister persister;声明了一个变量persister.(写到这有两种选择,一是像对SessionImplementor一样对这个EntityPersis...

2008-05-19 09:12:04 78

集万千宠爱于一身的SessionImpl:get研究(四): Hibernate源码研究碎得(8)

上一篇重点介绍了LoadEventListener里的LoadType这个static final类及其在LoadEventListener里的定义的几个对象后,简单地介绍了DefaultLoadEventListener里的三个static final属性,现在在这篇中将重点研究这里的onLoad方法. 进入onLoad方法后,第一句就是从event中getSession,这个返回值以Sess...

2008-05-17 13:57:36 607

从源码层面来看load与get的区别(三): Hibernate源码研究碎得(7)

LoadEventListener中的LoadType接着上一篇,我们来看方法fireLoad(event, LoadEventListener.GET);第一个参数就是前面已经准备好的LoadEvent对象,我们重点看下第二个参数.这个fireLoad的签名是这样的: fireLoad(LoadEvent event, LoadType loadType)追着看下LoadType的定义,有点...

2008-05-16 09:10:21 90

从源码层面来看load与get的区别(二): Hibernate源码研究碎得(6)

从源码层面来看load与get的区别(二): Hibernate源码研究碎得(5)接着上一篇问题的引入,本篇中我们先从Session里我们很熟悉的get(Class entityClass, Serializable id)起步.小菜这用的例子是Hibernate里自带那个, 程序的入口为下面的Java语句: person = (Person) session.get(Person.class,...

2008-05-15 09:06:25 103

从源码层面来看load与get的区别(一): Hibernate源码研究碎得(5)

在写以前先跟着源码的执行大致地看了看这两个方法所涉及的东西,一下子感觉到对这两个方法的比较将对以后session里的众多方法乃至整个Hibernate的研究都会起到很大的促进作用,由于这两个方法所涉及的东西很多,估计能写出10篇左右的Blog,我也就不用担心这些天写Blog没什么要出手的了.**************************************************源码...

2008-05-14 09:36:25 109

Hibernate源码研究碎得(4)

1, 为什么在new一个Configuration对象时要调用另一个构造方法呢?而另一个构造方法里接收一个传来的SettingsFactory的参数,难倒说在new一个Configuration时还可以另行指定自造的SettingsFactory?这就像Configuration类里的configure()方法那样?调用无参的configure()方法时就去找那个默认的配置文件,但也是另行指定配置...

2008-05-14 09:25:39 111

谢谢Hibernate---Hibernate源码研究碎得(3)

谢谢Hibernate.鼓捣Hiberante的源码有一段日子也,回过头来看看这段路,不由地想起"感触颇多"这个词了:从刚开始的"为伊消的人憔悴"到现在的渐入佳境,再往前看尽管还有很长的路要走,不过现在很想说"谢谢Hibernate!"看了Hiberate源码,我不再浮躁.在Java的学习/应用路上,是有了点点收获,有了这些收获后,也不知道怎么回事,心就静不下来,这个了觉得容易,那个也觉得简单...

2008-05-12 14:40:01 117

Hibernate源码研究碎得(2)

1, 为什么tables用的是TreeMap这个类呢?而别的大都用的是HashMap2, Environment.getProperties()每次调用都是新建一个Properties对象,把这个对象传对调用者.这样做用什么特殊的好处呢?3, 怪,怎么会出现一模一样的两行LogInfo呢? [2008-05-05 09:16:36,750] INFO  org.hibernate.cfg.Envi...

2008-05-05 16:46:05 109

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除