hibernate.cfg.xml 文件的解析與裝載(圖)

hibernate.cfg.xml 文件的解析與裝載

 

大家都清楚,Hibernate是通過*.hbm.xml文件來把值對象和數據庫表之間建立一個映射關係。但對於Hibernate如何解析這些文件和如何把相關信息裝載到Hibernate所管理的存儲對象中去,恐怕還不是非常瞭解吧。對這個問題的興趣源起於我想對對象的屬性能有更多的描述,比如說指定屬性在表示層的displayname等,如下描述:

 

<property name="bizobType" type="string" insert="false" update="false">

    <column name="bizobType" length="32" not-null="true" index="idx_bizobType" sql-type="text">

    <comment>The name of bizob type, reference to bizobModel</comment>

    </column>

    <field calculable="false" displayable="true" searchable="true" sortable="true"/>

</property>

 

其實就是希望對*.hbm.xml文件增加一些自己想要字段,並且能夠裝載到Hibernate所管理的存儲對象中去。不過這是後話,最重要的是瞭解Hibernatemapping文件的裝載機制。爲此,我對Hibernate的裝載進行了調試跟蹤,挖取出了一些Hibernate所管理的存儲對象。讓我們首先對這些Hibernate對象有個總體的認識。

1.      org.hibernate.Session

提供了數據持久化的相關操作,如delete, update, add 等。

2.      org.hibernate.SessionFactory

生產Session的工廠類。

3.      org.hibernate.cfg.Settings

用於存放運行時刻影響Hibernate行爲的配置項。一般在Hibernate.cfg.xml中描述,如:

 

<property name="generate_statistics">true</property>

<property name="cache.use_second_level_cache">false</property>

<property name="connection.pool_size">50</property>

<property name="jdbc.fetch_size">50</property>

<property name="jdbc.batch_size">100</property>

<property name="hibernate.hbm2ddl.auto">update</property>

 

4.      org.hibernate.cfg.Configuration

 

Configuration用於保存我們所寫的配置文件信息,比如所有的Table和所有對應的Class及其屬性等。

5.      org.hibernate.cfg.HbmBinder

用於解析mapping配置文件和把相應的解析項放入Mappings中。

6.      org.hibernate.cfg.Mappings

存放Table和對應類的相關信息。

     

主要的一些接口和類已大體介紹完,下面介紹解析和裝載過程。

 

1.        總解析和裝載過程

 

 

2.        Parse Mapping Elements

 
發佈了31 篇原創文章 · 獲贊 16 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章