转自:http://shazhifeng.iteye.com/blog/349936
在*.hbm.xml必须声明的<generator>子元素是一个Java类的名字,用来为该持久化类的实例生成唯一的标识。
<generator class="sequence"/>
这是一个非常简单的接口;某些应用程序可以选择提供他们自己特定的实现。当然,Hibernate提供了很多内置的实现。下面是一些内置生成器的快捷名字:
increment(递增)
用于为long, short或者int类型生成唯一标识。只有在没有其他进程往同一张表中插入数据时才能使用。 在集群下不要使用。
identity
对DB2,MySQL, MS SQL Server, Sybase和HypersonicSQL的内置标识字段提供支持。返回的标识符是long,short 或者int类型的。
sequence (序列)
在DB2,PostgreSQL, Oracle, SAP DB, McKoi中使用序列(sequence),而在Interbase中使用生成器(generator)。返回的标识符是long, short或者 int类型的。
hilo (高低位)
使用一个高/低位算法来高效的生成long, short或者 int类型的标识符。给定一个表和字段(默认分别是是hibernate_unique_key 和next_hi)作为高位值得来源。高/低位算法生成的标识符只在一个特定的数据库中是唯一的。在使用JTA获得的连接或者用户自行提供的连接中,不要使用这种生成器。
seqhilo(使用序列的高低位)
使用一个高/低位算法来高效的生成long, short或者 int类型的标识符,给定一个数据库序列(sequence)的名字。
uuid.hex
用一个128-bit的UUID算法生成字符串类型的标识符。在一个网络中唯一(使用了IP地址)。UUID被编码为一个32位16进制数字的字符串。
uuid.string
使用同样的UUID算法。UUID被编码为一个16个字符长的任意ASCII字符组成的字符串。不能使用在PostgreSQL数据库中
native(本地)
根据底层数据库的能力选择identity, sequence 或者hilo中的一个。
assigned(程序设置)
让应用程序在save()之前为对象分配一个标示符。
foreign(外部引用)
使用另外一个相关联的对象的标识符。和<one-to-one>联合一起使用。
<class name="onlyfun.caterpillar.User" table="USER">
<id name="id" type="string" unsaved-value="null">
<column name="USER_ID"/>
<generator class="uuid.hex"/>
</id>
分享到:
相关推荐
这个属性可以配置在 `hibernate.hbm.xml` 文件中的 `<id>` 标签内,它允许你选择不同的策略来生成 ID。 1. **identity**:这个生成器适用于像 MySQL 这样的数据库,它依赖于数据库自身的自动递增功能。例如,在 ...
在Java的持久化框架Hibernate中,`hibernate.hbm.xml`文件是至关重要的,它定义了Java对象与数据库表之间的映射关系,使得对象模型能够与关系型数据库无缝对接。这篇文章将深入解析`hibernate.hbm.xml`的结构和主要...
在Hibernate中,`Generator`是负责生成主键值的策略,通常在`<id>`元素中通过`class`属性指定。不同的数据库和不同的应用场景可能需要不同的生成策略。接下来,我们将逐一介绍各种常见的生成策略及其适用场景。 ###...
《使用Hibernate Code Generator提高开发效率》 在Java J2EE开发中,Hibernate作为一个强大的对象关系映射(ORM)框架,极大地简化了数据库操作。然而,手动编写与数据库表对应的Java实体类、Hibernate的.hbm映射...
在 Hibernate 中,`hbm.xml` 文件是用于定义对象与数据库表之间映射的元数据文件。这篇文档将深入解析 `hbm.xml` 配置的各个方面。 ### 1. `hbm.xml` 文件结构 `hbm.xml` 文件的开头通常包含 XML 声明和 DTD 引用...
Hibernate 在 MyEclipse 中根据表结构生成实体和 hbm.xml 文件 在 MyEclipse 中,我们可以使用 Hibernate 根据现有的数据库表结构生成实体和 hbm.xml 配置文件,这样可以避免手动编写 JPA 或 Hibernate 实体类。...
3. 将 hbm.xml 文件加入到 application.mappinginfo.xml 中:将 hbm.xml 文件加入到 application.mappinginfo.xml 中,以便于 Hibernate 可以正确地加载映射关系。 五、 小结 通过以上步骤,开发者可以使用 ...
在Java开发中,Hibernate是一个非常流行的ORM(对象关系映射)框架,它允许开发者使用面向对象的方式来操作数据库,而无需关心底层SQL语句。映射文件是Hibernate中的关键元素,它定义了Java实体类与数据库表之间的...
column-name: 实体类中属性对应的数据库表中字段名 --> <!-- 数据库表中主键字段名与实体类的属性名相同时,column 可以省略不写 --> <!-- </property> --> <!-- 员工对部门 多对一的...
在Hibernate中,`hibernate.hbm2ddl.auto`属性控制着Hibernate是否自动执行DDL操作。当设置为`create`时,Hibernate会在启动时删除现有表并重新创建新表。这通常用于开发环境中快速迭代的需求。在生产环境中,为了...
本主题聚焦于如何在Oracle环境中自动生成Hibernate实体类(`.java`文件)及其对应的映射文件(`.hbm.xml`文件)。这个过程通常是为了减少手动编写这些文件的工作量,提高开发效率。 首先,我们需要理解`Oracle`存储...
5. **自动建表(Schema Generation)**: Hibernate的`hibernate.hbm2ddl.auto`配置属性决定了在应用启动时如何处理数据库表。设置为`create`会在每次启动时清空并重建表,`update`则只更新表结构以适应新的实体定义...
在Hibernate中,XML配置文件是连接对象模型与数据库模型的关键,而`.hbm.xml`文件就是这种映射的载体。本文将深入探讨Hibernate的`.hbm.xml`配置文件以及其内部的映射类型。 首先,让我们了解`.hbm.xml`文件的作用...
- `<id>`标签映射主键,`name`属性指定Java类中的主键属性,`<generator>`定义主键生成方式,如自增、序列等。 - `<property>`标签映射普通属性,`name`对应类属性,`column`对应数据库表的列。 6. **使用...
其中,`hibernate.hbm2ddl.auto`属性决定了Hibernate对数据库表的操作。常见的取值有: - `create`:每次启动应用时,都会删除旧表并重新创建新表,适合开发阶段。 - `update`:只更新已有表结构,不会删除表,适用...
在Hibernate中,我们通常会为每个数据库表创建一个对应的Java类,并通过`.hbm.xml`映射文件来描述这个映射关系。例如: ```xml <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" ...
在Java开发中,尤其是在使用Hibernate框架进行持久化操作时,通常需要为每个Java实体类编写对应的Hibernate映射文件(HBM)。然而,手动编写这些XML文件既耗时又容易出错。为了解决这个问题,XDoclet应运而生,它是...
4. `<id>` 元素定义主键,`generator` 属性指定生成策略,`identity` 表示由数据库自动生成 ID。 5. `<property>` 元素表示实体类的属性,`name` 是 Java 中的字段名,`column` 是对应数据库表中的列名。 `...