為了使用Hibernate的Transaction API,我們必須通過hibernate.transaction.factory_class屬性指定一個Transaction實例工廠類。Transaction API隱藏了底層的事務機制,允許Hibernate代碼在受管制和非受管制的環境下都可以進行。
使用JDBC的事務處理機制:
hibernate.transaction.factory_class net.sf.hibernate.transaction.JDBCTransactionFactory
使用JTA
hiberante.transaction.factory_class net.sf.hibernate.transaction.JTATransactionFactory
jta.UserTransaction jta/usertransaction
O/R映射關系無疑是ORM框架中最為關鍵的組成部分,在進行Hibernate實體屬性映射關系定義時,需要提供屬性的數據類型設定,通過這些類型定義,Hibernate即可完成Java數據類型到數據庫特定數據類型的映射關系。
實體映射技術作為類與表之間的聯系紐帶,在ORM實現中起著至關重要的作用。
實體映射的核心內容,即實體類與數據庫表之間的映射定義。Hibernate中,類表映射主要包括3個部分內容:
a、表名-類名映射
b、主鍵映射
c、字段映射
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd>
<hibernate-mapping>
<class name="com.redsage.hibernate.db.entity.TUser" table="T_USER"/>
<id name="id" column="id" type="java.lang.Integer">
<generator class="native"/>
</id>
<property name="name" column="name" type="java.lang.String"/>
<property name="age" column="age" type="java.lang.Integer"/>
</class>
</hibernate-mapping>
XML文件頭定義了本XML文檔所采用的編碼方式:encoding="UTF-8".并指定了當前XML的DTD,DTD文件對當前XML文檔中的節點進行定義,這樣我們加載配置文件之前,可通過指定的DTD對當前XML中的節點進行檢查,確定XML結構和數據類型是否合法。
通過CLASS節點的配置,hibernate即可獲知類與表的映射關系,即每個TUser類對象對應T_User表中的一條記錄。
ID節點定義類實體類的標示(identity),在這里也就是對應庫表主鍵的類屬性,name="id"指定了當前映射類中的屬性"id"對應了T_User表中的主鍵字段。
column="id"指定了當前映射表T_User唯一標示為"id"字段.id字段是T_User表的一個自增型字段,同時也是T_User表的主鍵。通過id字段我們即可唯一定位一條記錄。
type="java.lang.Integer"指定了當前字段的數據類型。
<generator class="native"/>指定了主鍵生成方式,這里的class="native"設定,意味著將主鍵生成機制的實現方式交由hibernate決定,hibernate將根據底層數據庫適配器的定義,采用不同數據庫特定的主鍵生成方式。
posted on 2009-10-15 14:58
王永慶 閱讀(206)
評論(0) 編輯 收藏 所屬分類:
HIBERNATE