`
sunrenen
  • 浏览: 40192 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Hibernate源码研究碎得(2)

阅读更多

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

这是log4j配置时哪出错了?
4,跟Tomcat对配置文件的解析相比,Hibernate对配置文件的解析用的是那种DOM,也就是说把XML文件生成一个Document放在内存中,什么时候用就直接用.而Tomcat像是用SAX解析方式,根据解析事件去配置相应的Component.

5,url.openStream()?为什么要用这个而不用那种直接的打开方式呢?

6,注意有两个类Mappings与Mapping,
Mappings是在解析hbm.xml时

7,hibernate-mapping里的子元素Meta还没有用过.这个怎么与别的联系起来?

8,有专门的extractRootAttributes方法来get RootNote下的attributes,这也进一步证明了上面的Meta是RootNode的子元素而不是其属性.

9,看hibernate-mapping-3.0.dtd又进一步想到了正则表达式中也会用到的*?等对个数限制的描述符.
*: 表示任意个数,0 --> N.
?: 表示0 or 1吗现在也不确定了.
10,dtd描述文件中的像如下所示中的
<!ATTLIST hibernate-mapping default-cascade CDATA "none">

CDATA是什么意思?

11,Map put时的一个新发现:
Object old = classes.put( persistentClass.getEntityName(), persistentClass );
  if ( old!=null ) {
   throw new DuplicateMappingException( "class/entity", persistentClass.getEntityName() );
}

Hibernate中有如上的应用,也就是说可以能过put的返回值是否为null来判断是否覆盖了Map中与Key相对的原用Entity.不错.

再看API,对put的返回值有如下描述:
the previous value associated with  key , or null  if there was no mapping for  key .(A  null  return can also indicate that the map previously associated  null  with  key , if the implementation supports  null  values.)

12,HmbBinder类中的bindPojoRepresentation这三个方法bind的是从DB返回后的包装类型么?
分享到:
评论

相关推荐

    hibernate源码包

    hibernate源码

    hibernate源码 直接使用

    标题"hibernate源码 直接使用"表明我们将探讨的是Hibernate框架的源代码,以及如何直接在项目中应用这些源代码。Hibernate是一个流行的Java ORM(对象关系映射)框架,它简化了数据库操作,将数据库交互转化为面向...

    hibernate 源码直接导入Eclipse

    2. 如何在Eclipse中导入Hibernate源码: - 下载Hibernate源码:首先从官方网站或镜像站点下载Hibernate的源码包,如hibernate-3.6.9。 - 创建Java项目:在Eclipse中新建一个Java工程,命名为hibernate-study或类似...

    Hibernate源码

    在深入研究Hibernate源码时,可以关注以下关键点: - **实体管理**:了解实体生命周期(瞬态、持久化、托管和脱管),以及状态转换的过程。 - **HQL和Criteria API**:学习如何构建面向对象的查询,以及它们与原生...

    Hibernate源码解析(一)

    2. Hibernate核心组件 - Configuration:配置对象,负责读取hibernate.cfg.xml配置文件,初始化SessionFactory。 - SessionFactory:会话工厂,是线程安全的,用于创建Session对象。它是整个Hibernate的核心,缓存...

    传智播客hibernate源码

    2. **配置文件**: Hibernate的配置文件(hibernate.cfg.xml)用于定义数据源、数据库连接参数、方言等,是初始化Hibernate环境的关键。 3. **实体类(Entity)**: 实体类代表数据库中的表,通过注解或XML文件定义...

    Hibernate源码(hibernate-orm-main.zip)

    Hibernate源码(hibernate-orm-main.zip)Source Code: Hibernate ORM 是一个为应用程序、库和框架提供对象/关系映射 (ORM) 支持的库。 它还提供了 JPA 规范的实现,这是 ORM 的标准 Java 规范。

    精通Hibernate源码.rar

    《精通Hibernate源码》 ...通过深入研究Hibernate源码,我们可以更好地理解ORM的工作原理,从而在项目实践中更好地运用Hibernate,提高代码质量和开发效率。同时,掌握源码也有助于定制化开发,满足特定业务需求。

    hibernate源码

    《深入剖析Hibernate源码》 Hibernate,作为一款广泛使用的开源对象关系映射(ORM)框架,为...通过对源码的深入研究,我们可以更好地利用Hibernate提供的功能,优化我们的应用,同时也能为自己的项目设计提供灵感。

    精通hibernate源码ch2

    在Chapter2中,我们将重点学习Hibernate如何实现这一目标,以及其源码背后的机制。 1. Hibernate核心概念: - Session:是Hibernate的主要工作单元,它提供了与数据库交互的接口,负责对象的创建、更新、删除和...

    hibernate源码的学习

    Hibernate是一个开源的对象关系映射(ORM)框架,它允许开发者使用Java对象来操作数据库,而无需直接编写SQL语句。...通过对"hibernate-one2many"的分析,我们可以深入研究和实践一对一和一对多关联关系的配置和操作。

    Hibernate源码解析(二)

    在本篇《Hibernate源码解析(二)》中,我们将深入探讨Hibernate这一强大的Java对象关系映射(ORM)框架的内部工作原理。这篇博客旨在帮助开发者更好地理解Hibernate的核心机制,以便于更高效地利用它来处理数据库...

    hibernate3源码

    Hibernate是一种Java语言下的对象关系映射解决方案。 它是使用GNU宽通用公共许可证发行的自由、开源的软件。它为面向对象的领域模型到传统的关系型数据库的映射,提供了一个使用方便的框架。Hibernate也是目前Java...

    Struts,Spring,Hibernate源码包

    总之,深入学习Struts、Spring和Hibernate的源码,对于提升Java开发者的专业水平具有重要意义。这不仅涉及到了Web开发的基本原理,还涵盖了软件设计、框架构建和数据库交互等多方面的知识。通过这种方式,开发者可以...

    Hibernate源码解析(三)

    《Hibernate源码解析(三)》这篇文章主要探讨了Hibernate框架的深入源码解析,这是对 Hibernate 框架理解的进一步深化。在本篇中,作者聚焦于几个关键的组件和机制,帮助读者理解 Hibernate 如何高效地管理和操作...

Global site tag (gtag.js) - Google Analytics