为了使用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
王永庆 阅读(198)
评论(0) 编辑 收藏 所属分类:
HIBERNATE