精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-05-20
在这篇中本来是没想着画EntityPersister接口继承关系及其实现类的类图,可看着看着觉得这个继承关系很壮美,也就很想看到它的全貌,于是就有在这另一篇博客里的类图. 言归正传,来看DefaultLoadEventListener类里的load方法,这个方法里可分为如下三步: 先看step1,这里有个event.getSession().getPersistenceContext().getEntry(event.getInstanceToLoad()) != null判断,(这个Entry是干啥的?)若不为null就抛出"attempted to load into an instance that was already associated with the session: "Message的Exception.对,从这个message也能理解了不为null也就意味着当前PersistenceContext里已有instance.也就是说这个instance与session已关联起来了,那这样先前所假想的那个refresh功能就是错的了.看下面的persister.setIdentifier()方法,我们就可以修正先前的那个关于refresh的假想,或者说是去evolve那个假说:通过设置这个instanceToLoad,我们是想把处于detached状态的对象再次绑定到session里.这不是update的功能么?难道说update在底层就是调用了这个load方法? ----> 以后做进一步的验证. 看step2的doLoad方法,这又是一个独立的方法.只能留到下一篇来详细研究了,不妨也学Hibernate里proxy概念那样,这个load方法将返回一个Object对象,也就是我们想get/load的那个对象. 下面是step3. ***************************************************** 现在总结,最先进入mind里的是刚开始画出的那个类图.很直观,扫清了障碍,也更坚定了信心,心里不再疙疙瘩瘩的,可以亮堂堂地前行.这是成功的心理因素. 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
浏览 1728 次