Hibernate一些变态的设计思想

原创 2007年10月08日 17:38:00

今天在查找Hibernate所出现的问题时,发现了其一个比较变态的设计及实现。

org.hibernate.proxy.EntityNotFoundDelegate接口,查了好久,没有发现它是由那个具体类实现的。如果一个接口没有具体实现,是不可能的,这是大家共知的常识,所以,还要仔细找找,可能是由inner class 实现的具体方法,可能就无法找到implements关键字了。根据这个思路,将Hibernate的源码,做了一个project在eclipse里,这样,利用eclipse强大的查找功能,找到了六处与字符串handleEntityNotFound匹配。

在org.hibernate.impl.SessionFactoryImpl类,看到了这么一段代码:进入org.hibernate.cfg.Configuration一看,对于entityNotFoundDelegate 只有一个setter和getter方法,没有具体实现。呵呵,看来,就是在SessionFactoryImpl里实现了这一点。但是,既然初始化了EntityNotFoundDelegate ,为何没有调用Configuration的setEntityNotFoundDelegate(EntityNotFoundDelegate entityNotFoundDelegate)方法进行设值呢?!!

        // EntityNotFoundDelegate
        EntityNotFoundDelegate entityNotFoundDelegate = cfg.getEntityNotFoundDelegate();
        
if ( entityNotFoundDelegate == null ) ...{
            entityNotFoundDelegate 
= new EntityNotFoundDelegate() ...{
                
public void handleEntityNotFound(String entityName, Serializable id) ...{
                    
throw new ObjectNotFoundException( id, entityName );
                }

            }
;
        }

        
this.entityNotFoundDelegate = entityNotFoundDelegate;

 

应用这个接口里的方法,无非是为了抛出一个ObjectNotFoundException,只有大家明白了这点就行了。 

五大算法基本思想—分治,动态规划,贪心,回溯,分支界限

算法是什么,即是按照一定的步骤,一步步去解决某个问题,解决问题的方法步骤就称为算法,例如数学中我们学过的做一个运算,解一个方程,等等,都需要有一个清晰的思路,一步步地去完成。可以说算法就在身边。算法和...
  • akkzhjj
  • akkzhjj
  • 2014年05月08日 21:48
  • 7194

0-1背包问题的两种动态规划算法思想

动态规划有两种基本思路,一种是自顶而下的备忘录算法,一种思路是自底向上的动态规划算法。...
  • QiaoRuoZhuo
  • QiaoRuoZhuo
  • 2017年03月22日 08:52
  • 1571

java之 ------ 设计思想

java的设计思想 (设计思想,是需要不断领悟的。。。) 一、封装 学java的人都知道这是向对象的编程语言,从字面上理解,就是针对对象的一些操作,将具有某一特性的实体封装成一个类或者是将具有一定功...
  • u011479875
  • u011479875
  • 2015年08月20日 00:04
  • 1702

Hibernate框架设计之ORM思想

Hibernate框架是比较流行的持久化框架,是一个完整的持久化层解决方案,通过Hibernate的支持,可以以面向对象的方式进行各种数据库操作,从而取代传统的JDBC数据库操作。     OR...
  • wang_shuyu
  • wang_shuyu
  • 2016年11月17日 21:05
  • 219

2006年百度之星程序设计大赛试题初赛题目-题3-变态的比赛规则

变态的比赛规则  为了促进各部门员工的交流,百度 (baidu) 举办了一场全公司范围内的 " 拳皇友谊赛 " ,负责组织这场比赛的是百度的超级 " 拳皇 " 迷 W.Z. W.Z 不想用传统的淘汰...
  • mishifangxiangdefeng
  • mishifangxiangdefeng
  • 2012年05月17日 21:48
  • 1050

"百度之星"程序设计大赛试题解答(Java实现)---变态的比赛规则(未完成!!!)

悲催啊,弄了整整一下午还是没有完整滴弄出来 不得不承认我智商很一般,搞这个整数划分的算法搞了近1个小时才弄明白,可是,这道变态的题目并不是这样简单啊!!!忍无可忍,只好站在前人的肩膀上了来做了一位是...
  • benma378
  • benma378
  • 2013年04月02日 18:31
  • 1356

php解:2006 年百度之星程序设计大赛初赛题目 3 ----变态的比赛规则

2006 年百度之星程序设计大赛初赛题目 3 变态的比赛规则 为了促进各部门员工的交流,百度 (baidu) 举办了一场全公司范围内的 " 拳皇友谊赛 " ,负责组织这场比赛的是百度的超级 " 拳皇 ...
  • wxhlxx
  • wxhlxx
  • 2011年06月04日 20:57
  • 1115

以MyBatis+SpringMVC3.0实现的,借鉴了Hibernate设计思想,采用封装、抽象、继承的设计思想,做到了数据与相应的操作的高内聚低耦合的实现

import org.springframework.context.ApplicationContext; import org.springframework.context.support.Cl...
  • lmc1138789752
  • lmc1138789752
  • 2015年04月22日 15:41
  • 1033

Hibernate核心思想—ORM机制(二)

上篇文章总结了对象之间的一对一映射。而在关系模型中,最常见的映射为一对多和多对多。 一对一映射主要用到的标签,一对多主要用到和,多对多用到.下面一一来看。 (五)单向一对多映射         ...
  • wanghuan203
  • wanghuan203
  • 2012年05月27日 16:17
  • 3011

Hibernate核心思想—ORM机制(三)

上篇博文中总结的一对多和多对多实体类的映射。本次总结实体类继承的映射机制。实体类的继承映射常用的共有三种方式。一一来看。 (八)继承映射(1)单表继承,每棵继承树使用一个表         这种方...
  • wanghuan203
  • wanghuan203
  • 2012年05月28日 19:42
  • 3631
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Hibernate一些变态的设计思想
举报原因:
原因补充:

(最多只允许输入30个字)