Hibernate_4 实体类映射文件.hbm.xml 介绍

2017-12-14  本文已影响34人  mm_cuckoo

首先看一个简单的 .hbm.xml 配置文件

Student.hbm.xml

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 2017-10-13 16:40:55 by Hibernate Tools 3.4.0.CR1 -->
<hibernate-mapping package="com.cfox.hibernate">
    <class name="Student" table="STUDENT_INFO" select-before-update="true">
        <id name="id" type="java.lang.Integer">
            <column name="ID" />
            <generator class="native" />
        </id>
        <property name="name" type="java.lang.String">
            <column name="NAME" />
        </property>
        <property name="age" type="int">
            <column name="AGE" />
        </property>
        <property name="joinDate" type="java.util.Date">
            <column name="JOINDATE" />
        </property>
    </class>
</hibernate-mapping>

下面就以上面为例对标签及属性进行说明

hibernate-mapping :是 hibernate 映射文件的根元素

class:元素用于指定类和表的映射

OID 映射对象标识符

id:设定持久化类的 OID 和表的主键的映射

generator
表示生成器 描述
increment 适用于代理主键。 由Hibernate 自动以递增方式生成。
identity 适用于代理主键。 由底层数据库生成标识符。
sequence 使用于代理主键。 Hibernate根据底层数据库的序列生成标识符,这要求底层数据库支持序列。
hilo 适用于代理主键。HIbernate 分局 high/low算法生成标识符。
seqhilo 适用于代理主键。使用一个高/低位算法来高效的生成long , short 或者int类型的标识符。
native 适用于代理主键。根据底层数据库对自动生成标识符的方式,自动选择identity 、 sequence 或 hilo
uuid.hex 使用于代理主键。Hibernate 采用 128位 UUID算法生成标识符。
uuid.string 适用于代理主键。UUID 被编码成一个 16 字符的字符串
assigned 使用于自然主键。Java 应用程序负责生成标识符
foreign 适用于代理主键。使用另外一个相关的对象的标识符

Hibernate提供的内置标识符生成器:

表示生成器 描述
increment 适用于代理主键。 由Hibernate 自动以递增方式生成。
identity 适用于代理主键。 由底层数据库生成标识符。
sequence 使用于代理主键。 Hibernate根据底层数据库的序列生成标识符,这要求底层数据库支持序列。
hilo 适用于代理主键。HIbernate 分局 high/low算法生成标识符。
seqhilo 适用于代理主键。使用一个高/低位算法来高效的生成long , short 或者int类型的标识符。
native 适用于代理主键。根据底层数据库对自动生成标识符的方式,自动选择identity 、 sequence 或 hilo
uuid.hex 使用于代理主键。Hibernate 采用 128位 UUID算法生成标识符。
uuid.string 适用于代理主键。UUID 被编码成一个 16 字符的字符串
assigned 使用于自然主键。Java 应用程序负责生成标识符
foreign 适用于代理主键。使用另外一个相关的对象的标识符

property 元素用于指定类的属性和表的字段的映射

使用 formula 属性

先看一个例子:

在上面的代码中使用了formula, 下面看一下使用简单介绍:

上一篇 下一篇

猜你喜欢

热点阅读