`
phoenixocean
  • 浏览: 8268 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
社区版块
存档分类
最新评论

hibernate中hbm的generator属性

 
阅读更多

转自:http://shazhifeng.iteye.com/blog/349936

*.hbm.xml必须声明的<generator>子元素是一个Java类的名字,用来为该持久化类的实例生成唯一的标识。

 

<generator class="sequence"/>

 

这是一个非常简单的接口;某些应用程序可以选择提供他们自己特定的实现。当然,Hibernate提供了很多内置的实现。下面是一些内置生成器的快捷名字:

 

increment(递增)

用于为longshort或者int类型生成唯一标识。只有在没有其他进程往同一张表中插入数据时才能使用。 在集群下不要使用。

identity

对DB2,MySQL, MS SQL Server, Sybase和HypersonicSQL的内置标识字段提供支持。返回的标识符是long,short 或者int类型的。

sequence (序列)

在DB2,PostgreSQL, Oracle, SAP DB, McKoi中使用序列(sequence),而在Interbase中使用生成器(generator)。返回的标识符是longshort或者 int类型的。

hilo (高低位)

使用一个高/低位算法来高效的生成longshort或者 int类型的标识符。给定一个表和字段(默认分别是是hibernate_unique_key 和next_hi)作为高位值得来源。高/低位算法生成的标识符只在一个特定的数据库中是唯一的。在使用JTA获得的连接或者用户自行提供的连接中,不要使用这种生成器。

seqhilo(使用序列的高低位)

使用一个高/低位算法来高效的生成longshort或者 int类型的标识符,给定一个数据库序列(sequence)的名字。

uuid.hex

用一个128-bit的UUID算法生成字符串类型的标识符。在一个网络中唯一(使用了IP地址)。UUID被编码为一个32位16进制数字的字符串。

uuid.string

使用同样的UUID算法。UUID被编码为一个16个字符长的任意ASCII字符组成的字符串。不能使用在PostgreSQL数据库中

native(本地)

根据底层数据库的能力选择identitysequence 或者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的generator属性

    这个属性可以配置在 `hibernate.hbm.xml` 文件中的 `&lt;id&gt;` 标签内,它允许你选择不同的策略来生成 ID。 1. **identity**:这个生成器适用于像 MySQL 这样的数据库,它依赖于数据库自身的自动递增功能。例如,在 ...

    hibernate.hbm.xml详解

    在Java的持久化框架Hibernate中,`hibernate.hbm.xml`文件是至关重要的,它定义了Java对象与数据库表之间的映射关系,使得对象模型能够与关系型数据库无缝对接。这篇文章将深入解析`hibernate.hbm.xml`的结构和主要...

    hibernate中的generator的生成方式hibernate中的generator的生成方式

    在Hibernate中,`Generator`是负责生成主键值的策略,通常在`&lt;id&gt;`元素中通过`class`属性指定。不同的数据库和不同的应用场景可能需要不同的生成策略。接下来,我们将逐一介绍各种常见的生成策略及其适用场景。 ###...

    hibernate_code_generator.rar

    《使用Hibernate Code Generator提高开发效率》 在Java J2EE开发中,Hibernate作为一个强大的对象关系映射(ORM)框架,极大地简化了数据库操作。然而,手动编写与数据库表对应的Java实体类、Hibernate的.hbm映射...

    hibernate。hbm.xml配置详解

    在 Hibernate 中,`hbm.xml` 文件是用于定义对象与数据库表之间映射的元数据文件。这篇文档将深入解析 `hbm.xml` 配置的各个方面。 ### 1. `hbm.xml` 文件结构 `hbm.xml` 文件的开头通常包含 XML 声明和 DTD 引用...

    在myeclipse中根据表结构生成实体和hbm.xml文件

    Hibernate 在 MyEclipse 中根据表结构生成实体和 hbm.xml 文件 在 MyEclipse 中,我们可以使用 Hibernate 根据现有的数据库表结构生成实体和 hbm.xml 配置文件,这样可以避免手动编写 JPA 或 Hibernate 实体类。...

    利用hibernate自动生成hbm.xml文件和entity类.doc

    3. 将 hbm.xml 文件加入到 application.mappinginfo.xml 中:将 hbm.xml 文件加入到 application.mappinginfo.xml 中,以便于 Hibernate 可以正确地加载映射关系。 五、 小结 通过以上步骤,开发者可以使用 ...

    java根据实体类生成Hibernate映射文件

    在Java开发中,Hibernate是一个非常流行的ORM(对象关系映射)框架,它允许开发者使用面向对象的方式来操作数据库,而无需关心底层SQL语句。映射文件是Hibernate中的关键元素,它定义了Java实体类与数据库表之间的...

    Hibernate使用hbm.xml配置映射关系解析

    column-name: 实体类中属性对应的数据库表中字段名 --&gt; &lt;!-- 数据库表中主键字段名与实体类的属性名相同时,column 可以省略不写 --&gt; &lt;!-- &lt;/property&gt; --&gt; &lt;!-- 员工对部门 多对一的...

    hibernate映射主键生成策略native

    在Hibernate中,`hibernate.hbm2ddl.auto`属性控制着Hibernate是否自动执行DDL操作。当设置为`create`时,Hibernate会在启动时删除现有表并重新创建新表。这通常用于开发环境中快速迭代的需求。在生产环境中,为了...

    Oracle自动生成hibernate实体(.java 和.hbm.xml文件)存储过程

    本主题聚焦于如何在Oracle环境中自动生成Hibernate实体类(`.java`文件)及其对应的映射文件(`.hbm.xml`文件)。这个过程通常是为了减少手动编写这些文件的工作量,提高开发效率。 首先,我们需要理解`Oracle`存储...

    Hibernate动态建表

    5. **自动建表(Schema Generation)**: Hibernate的`hibernate.hbm2ddl.auto`配置属性决定了在应用启动时如何处理数据库表。设置为`create`会在每次启动时清空并重建表,`update`则只更新表结构以适应新的实体定义...

    hbm xml配置详解 ssh框架

    在Hibernate中,XML配置文件是连接对象模型与数据库模型的关键,而`.hbm.xml`文件就是这种映射的载体。本文将深入探讨Hibernate的`.hbm.xml`配置文件以及其内部的映射类型。 首先,让我们了解`.hbm.xml`文件的作用...

    hibernate教程

    - `&lt;id&gt;`标签映射主键,`name`属性指定Java类中的主键属性,`&lt;generator&gt;`定义主键生成方式,如自增、序列等。 - `&lt;property&gt;`标签映射普通属性,`name`对应类属性,`column`对应数据库表的列。 6. **使用...

    Hibernate通过配置文件自动生成表

    其中,`hibernate.hbm2ddl.auto`属性决定了Hibernate对数据库表的操作。常见的取值有: - `create`:每次启动应用时,都会删除旧表并重新创建新表,适合开发阶段。 - `update`:只更新已有表结构,不会删除表,适用...

    hibernate的dtd 包含hibernate.properties

    在Hibernate中,我们通常会为每个数据库表创建一个对应的Java类,并通过`.hbm.xml`映射文件来描述这个映射关系。例如: ```xml &lt;!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" ...

    xdoclet 生成hbm文件

    在Java开发中,尤其是在使用Hibernate框架进行持久化操作时,通常需要为每个Java实体类编写对应的Hibernate映射文件(HBM)。然而,手动编写这些XML文件既耗时又容易出错。为了解决这个问题,XDoclet应运而生,它是...

    Hibernate较完整资料

    4. `&lt;id&gt;` 元素定义主键,`generator` 属性指定生成策略,`identity` 表示由数据库自动生成 ID。 5. `&lt;property&gt;` 元素表示实体类的属性,`name` 是 Java 中的字段名,`column` 是对应数据库表中的列名。 `...

Global site tag (gtag.js) - Google Analytics