`
hotmanhh
  • 浏览: 15263 次
社区版块
存档分类
最新评论

真是郁闷,Hibernate的Id generator不理解

阅读更多
:?

正在练习hibernate,将hibernate融入到以前的项目中。
对于<id></id>中的<generator>理解,不过想使用自己定义的格式流水号。头大了啊。

看参考文档中说明有那么多的可选择,我先选择sequence吧。

呵呵,今天看论坛上的"用户自定义ID Generator的例子",有所启发,按照自己的想法实现了,只是奇怪为何这个例子只有代码没有解释说明,摸索了一会,根据JB的提示错误搞定了。

问题关键集中在其类的映射文件上.hbm.xml的<generator>元素中的声明。
         <generator class="com.dsii.hibernate.po.CustomizedIdGenerator">
                <param name="table">uid_table</param>
                <param name="column">next_hi_value_column</param>
                <param name="prefix">C</param>
        </generator>

其中class为自定义的类,访问方式同我们访问普通的类一样,这个CustomizedIdGenerator类应当extends net.sf.hibernate.id.TableGenerator类,专门负责生成想要的ID。
而后<param name="table">uid_table</param>指名使用哪个表来记录下个可用的ID值,所以还需要一个column声明<param name="column">next_hi_value_column</param>,此时要记得生成这个表后,该column的值一定要给个初值,否则报错要你提供一个hi value。<param name="prefix">C</param>顾名思义当然就是前缀了,这样定义后生成的id形式为CX,其中X为数字。

CustomizedIdGenerator类代码请自行看论坛的文章吧。虽然没有完全搞懂,但也实现了我的需要。其实很简单的,就在最后的return处加上自己需要的格式。比如我就实现了CCC00000002342格式,呵呵,还不错嘛。

此处需要注意的是,千万不可以使用Tomcat的连接池,否则自定义id功能的无法使用。最好选择使用hibernate的自带的连接池。

希望根据此方式类推,慢慢掌握generator的做法。
分享到:
评论

相关推荐

    Hibernate的generator属性

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

    hibernate_code_generator.rar

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

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

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

    Hibernate映射文件id的generator配置方法

    Hibernate 映射文件 id 的 generator 配置方法 Hibernate 映射文件 id 的 generator 配置方法是 Hibernate 框架中的一种重要配置,用于生成持久化类实例的唯一标识符。下面将对 Hibernate 映射文件 id 的 generator...

    Hibernate教程02_ID生成策略

    在Java的持久化框架Hibernate中,ID生成策略是至关重要的一个环节。它是用来唯一标识数据库中每一...通过学习这些示例,你可以更好地理解如何在Hibernate中配置和使用不同的ID生成策略,并在实际项目中做出明智的选择。

    idgenerator:idgenerator是基于redis的id生成器

    idgenerator是基于redis的id生成器 dgenerator是基于redis的id生成器 安装 取得 go get github.com/lbfatcgf/idgenerator 快速开始 package main import ( "fmt" "net/http" "os" "os/signal" "syscall" ...

    Hibernate完整使用教程

    Hibernate 完整使用教程 Hibernate 是一种流行的开源持久层框架,允许开发者使用面向...composite-id 是 Hibernate 中的一种复合标识符,用于标识对象模型的唯一性。composite-id 可以通过 Java 类或 XML 文件来定义。

    hibernate的dtd 包含hibernate.properties

    理解这些知识点对于高效地使用Hibernate进行数据库操作至关重要。通过正确配置`hibernate.properties`,遵循`hibernate-configuration-3.0.dtd`和`hibernate-mapping-3.0.dtd`的规则,开发者可以实现Java对象与...

    hibernate tools源码运行或修改需要的jar

    在实际开发中,理解并掌握这些知识点将有助于更有效地使用和定制Hibernate Tools,提升开发效率。如果你在运行或修改源码过程中遇到问题,通常可以通过查阅官方文档、社区论坛或Stack Overflow等资源找到解决方案。

    hibernate 重点知识原创

    【hibernate 重点知识】 一、hibernate 简介 Hibernate 是一个流行的 Java 应用程序框架,主要用于简化对象关系映射(ORM)的过程...理解并熟练掌握 Hibernate 的各项功能,对于任何 Java 开发者来说都是至关重要的。

    一个简单的自定义ID 生成器IDGenerator

    一个用Java 编写简单的自定义ID 生成器IDGenerator

    Hibernate tool 源代码

    本文将通过对源代码的深入剖析,探讨其中的关键组件——Eclipse Plugin和Code Generator,帮助读者更全面地理解和运用Hibernate Tool。 首先,我们关注的是Eclipse Plugin。Eclipse Plugin是Eclipse集成开发环境的...

    hibernate关系映射网址

    理解并熟练掌握这些知识将极大地帮助开发人员利用Hibernate进行高效的数据持久化操作。在未来的工作实践中,开发人员还可以根据项目的具体需求灵活运用这些技巧,进一步提升系统的性能和可维护性。

    idgenerator分布式主键ID生成器

    迄今为止最全面的分布式主键ID生成器。优化的雪花算法(SnowFlake)——雪花漂移算法,在缩短ID长度的同时,具备极高瞬时并发处理能力(50W/0.1s)。 原生支持 C#/Java/Go/Rust/C/SQL 等多语言,且提供 PHP 扩展及 ...

    Hibernate快速入门教程

    【Hibernate快速入门教程】 ...通过理解Hibernate的基本原理和配置,初学者可以迅速上手并开始开发基于Hibernate的应用。这个快速入门教程提供了清晰的步骤和简单的示例,是学习Hibernate的绝佳起点。

    hibernate配置文件详解

    Hibernate 配置文件详解 Hibernate 是一个流行的 ORM(Object-Relational Mapping)框架,用于简化 Java 应用程序中的数据库交互。 Hibernate 的配置文件是其核心组件之一,用于定义 Hibernate 的运行期参数。下面...

    hibernate 资料hibernate 资料hibernate 资料

    ### Hibernate核心知识点详解 #### Hibernate概述 - **定义与作用:** Hibernate是...通过上述对Hibernate的核心知识点的详细解析,希望能够帮助读者更好地理解和掌握这一关键技术,为今后的实际开发打下坚实的基础。

    Hibernate4总结文档

    本文将深入探讨Hibernate4的配置和使用,帮助开发者更好地理解和应用这个框架。 1. Hibernate配置: Hibernate的配置主要通过一个名为`hibernate.cfg.xml`的文件进行。该文件定义了与数据库的连接参数、方言、缓存...

Global site tag (gtag.js) - Google Analytics