`
ssydxa219
  • 浏览: 622268 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

hibernate内不可使用的id生成器

 
阅读更多

使用@GeneratedValue
1 正对不同的数据库可以同时使用
        @Id
        @GeneratedValue(strategy = GenerationType.AUTO)
2 针对mysql
 @Id
 @GeneratedValue(strategy = GenerationType.IDENTITY)
3 针对oracle
       @Id
       @GeneratedValue(strategy = GenerationType.SEQUENCE,generator="s_gen")
       @SequenceGenerator(name="s_gen",sequenceName="s_seq")
说明:@GeneratedValue()的strategy属性支持5中id生成器:除上面3中外还有GenerationType.TABLE
2配合使用@GenericGenerator 不单独使用
hibernate内不可使用的id生成器可见代码
GENERATORS.put( "uuid", UUIDHexGenerator.class );
  GENERATORS.put( "hilo", TableHiLoGenerator.class );
  GENERATORS.put( "assigned", Assigned.class );
  GENERATORS.put( "identity", IdentityGenerator.class );
  GENERATORS.put( "select", SelectGenerator.class );
  GENERATORS.put( "sequence", SequenceGenerator.class );
  GENERATORS.put( "seqhilo", SequenceHiLoGenerator.class );
  GENERATORS.put( "increment", IncrementGenerator.class );
  GENERATORS.put( "foreign", ForeignGenerator.class );
  GENERATORS.put( "guid", GUIDGenerator.class );
  GENERATORS.put( "uuid.hex", UUIDHexGenerator.class );  // uuid.hex is deprecated
  GENERATORS.put( "sequence-identity", SequenceIdentityGenerator.class );
)
如果想要不同的表使用相同的主键生成器,可以把他的generator的name属性设为相同即可
例如:
@GeneratedValue(name="id1")
@GenericGenerator(name="id1",strategy="identity")

 

1、native

 @GeneratedValue(generator = "paymentableGenerator") @GenericGenerator(name = "paymentableGenerator", strategy = "native")

2、uuid
@GeneratedValue(generator = "paymentableGenerator") @GenericGenerator(name = "paymentableGenerator", strategy = "uuid")

3、hilo

@GeneratedValue(generator = "paymentableGenerator") @GenericGenerator(name = "paymentableGenerator", strategy = "hilo")

4、assigned
@GeneratedValue(generator = "paymentableGenerator") @GenericGenerator(name = "paymentableGenerator", strategy = "assigned")

5、identity

@GeneratedValue(generator = "paymentableGenerator") @GenericGenerator(name = "paymentableGenerator", strategy = "identity")

6、select

@GeneratedValue(generator = "paymentableGenerator") @GenericGenerator(name="select", strategy="select", parameters = { @Parameter(name = "key", value = "idstoerung") })

7、sequence

Java代码
 @GeneratedValue(generator = "paymentableGenerator") @GenericGenerator(name = "paymentableGenerator", strategy = "sequence", parameters = { @Parameter(name = "sequence", value = "seq_payablemoney") })

8、seqhilo

  @GeneratedValue(generator = "paymentableGenerator") @GenericGenerator(name = "paymentableGenerator", strategy = "seqhilo", parameters = { @Parameter(name = "max_lo", value = "5") })

9、increment

Java代码
@GeneratedValue(generator = "paymentableGenerator") @GenericGenerator(name = "paymentableGenerator", strategy = "increment")

分享到:
评论

相关推荐

    Hibernate内置标识符生成器

    这两种生成器使用 128 位的 UUID 算法,生成全局唯一的标识符。`uuid.hex` 生成的是 32 位的十六进制字符串,而 `uuid.string` 则生成 16 个字符的字符串形式。`uuid.hex` 不适用于 PostgreSQL 数据库。 8. ...

    Swing编写的Hibernate生成器

    Swing编写的Hibernate生成器是一种实用工具,它利用Java Swing图形用户界面来简化Hibernate框架的实体类和映射文件的创建过程。Hibernate是Java领域中一个广泛应用的对象关系映射(ORM)框架,它允许开发者通过面向...

    hibernate实体生成工具

    Hibernate是一个强大的对象关系映射(ORM)框架,它允许开发者用面向对象的方式来处理数据库操作,而实体生成工具则是这个过程中不可或缺的一部分。 ### Hibernate概述 Hibernate是一种开源的Java ORM框架,它为...

    Myeclipse生成Hibernate映射文件

    在IT行业中,开发Java应用程序时,常常需要使用到ORM(对象关系映射)框架,比如Hibernate,它能够帮助我们把数据库中的数据与Java对象进行映射,从而简化数据操作。而MyEclipse作为一款强大的Java集成开发环境,...

    hibernate_reference使用指南全

    详细讲解如何创建和获取 SessionFactory 实例,这是使用 Hibernate 必不可少的一步。 - **3.3 JDBC 连接** 解释如何配置 Hibernate 以使用特定的 JDBC 数据库驱动和连接池。 - **3.4 可选配置属性** 列举了...

    使用hibernate封装方法

    标题“使用Hibernate封装方法”暗示我们将讨论如何在项目中通过封装Hibernate操作,以提高代码的复用性和可读性。通常,我们会在DAO(数据访问对象)层进行这些封装,将数据库的CRUD(创建、读取、更新、删除)操作...

    使用Maven配置Hibernate5

    在现代Java开发中,Maven和Hibernate5是两个不可或缺的工具。Maven是一个项目管理和集成工具,它简化了构建、依赖管理和项目的标准化过程。而Hibernate5则是一个强大的对象关系映射(ORM)框架,它允许开发者用Java...

    Hibernate 转译中文版

    总的来说,《Hibernate 转译中文版》涵盖了Hibernate框架的各个方面,从基本概念到高级特性,对于Java开发者来说,是深入理解并熟练运用Hibernate不可或缺的学习资料。通过学习,你可以有效地利用Hibernate提升项目...

    ID生成策略

    在Hibernate映射文件中,可以这样配置`HiLo`生成器: ```xml <id name="id" column="id"> <param name="table">hi_value <param name="column">next_hi <param name="max_lo">100 </id> ``` 当使用`HiLo`...

    无垠式代码生成器最新功能与文档增强版0.7.22

    3)请使用本代码生成器的DSL即SGS(标准生成器脚本)完成您的工作 4)不吝反馈jerry_shen_sjf@qq.com 5)支持Java语言的两种技术组合:Simplejee和s2sh 6)生成相应对象的CRUDFLS等常用功能 7)生成完整的Eclipse JEE版...

    表生成器 @TableGenerator

    在Java世界中,数据库操作是应用开发不可或缺的一部分。`@TableGenerator` 是一个JPA(Java Persistence API)注解,用于在实体类中定义自增序列的生成器,主要用于为数据库表中的主键生成唯一的ID。这篇博文链接...

    实体生成器、可提取公共母类

    实体生成器是一种软件工具,主要用于自动化创建数据模型的实体类,这些实体类通常在Java、C#等面向对象编程语言中使用,与数据库中的表结构相对应。这种工具极大地简化了开发过程,避免了手动编写繁琐的代码,提高了...

    hibernate注解说明文档

    - `generator`:指定生成主键使用的生成器(可选)。 - **示例**: ```java @Entity @Table(name = "users") public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long ...

    hibernate3使用手册

    《Hibernate3使用手册》是Java开发领域中一本重要的参考资料,主要涵盖了如何利用Hibernate3这个流行的持久化框架进行数据库操作的相关知识。Hibernate3作为Java对象关系映射(ORM)工具的代表,极大地简化了数据库...

    hibernate3 中文API

    10. **事件监听器(Event Listeners)**: Hibernate允许注册监听器来处理对象生命周期中的特定事件,如预加载、加载、保存、更新、删除等,可用于实现自定义业务逻辑。 11. **状态转换(State Transitions)**: ...

    hibernate4.1中文官方文档

    总结,Hibernate 4.1中文官方文档详尽地涵盖了所有这些概念及其应用,是学习和实践中不可或缺的参考资料。无论是初学者还是有经验的开发者,都能从中受益匪浅。要获取这份文档,可以访问提供的下载地址:...

    Hibernate学习.pdf

    - **Session**: Hibernate进行所有数据库操作的基本上下文环境,是线程不安全的,每次操作都应打开新的Session,并在操作完成后关闭它。 - **Transaction**: 事务控制。 - **Query**: 查询操作。 - **Configuration*...

    hibernate源码release-4.1.4.Final版

    包括但不限于:合理使用缓存,避免N+1查询问题,使用批处理更新,选择合适的主键生成策略,以及优化HQL和SQL查询等。 通过深入学习Hibernate 4.1.4.Final的源码,我们可以更好地理解其设计思想,提升我们的编程技巧...

    Java实体类生成器(源码)

    在Java开发中,特别是在基于ORM(对象关系映射)框架如Hibernate或MyBatis的项目中,实体类是必不可少的。它们提供了与数据库交互的数据容器,减少了手动编写这些类的工作量,提高了开发效率。 实体类生成器的基本...

Global site tag (gtag.js) - Google Analytics