`
alex8946
  • 浏览: 365227 次
  • 性别: Icon_minigender_1
  • 来自: 广东广州
社区版块
存档分类
最新评论

Hibernate 中oracle 主键的自动生成办法(笔记)

    博客分类:
  • J2EE
阅读更多
1:uuid.hex: 采用128位的算法来生成一个32位字符串。最通用的一种方式。适用于所有数据库 。在*.hbm.xml中按如下设置。

<id name="id" unsaved-value="null"></id>
xml 代码
  1. <id name="id" unsaved-value="null">  
  2.   <generator class="uuid.hex"/>  
  3.  </id>  

2:指定参数的情况
    <id name="id" unsaved-value="0"></id>
    
xml 代码
  1. <id name="id" unsaved-value="0">    
  2.      <generator class="sequence">  
  3.        <param name="sequence">SEQ_CHILD</param>  
  4.      </generator>  
  5.    </id>  

3:以下是Tracylau 所写,网址如下:http://forum.iteye.com/allbloglist.php?page=5
所有的<generator></generator>的Class都是从net.sf.hibernate.id.IdentifierGenerator接口实现得到的,Class属性表示该generator是由哪种方式来生成的。生成方式包括:

increment:生成long, short或者int类型的主键,不能在cluster环境下使用。适用于所有数据库
identity:生成long, short或者int类型的主键。适用于DB2, MySQL, MS SQL Server, Sybase and HypersonicSQL
sequence :生成long, short或者int类型的主键。适用于DB2, PostgreSQL, Oracle, SAP DB, McKoi,Interbase.
hilo:生成long, short或者int类型的主键。需要提供一个数据库的表来存放生成的主键信息。当采用应用服务器的JTA提供的数据库连接或者用户自定义的数据库连接的时候,不要使用这种主键生成方式。适用于所有数据库
seqhilo:采用给定的数据库的sequence来生成long, short或者int类型的主键。适用于DB2, PostgreSQL, Oracle, SAP DB, McKoi,Interbase.

uuid.hex采用128位的算法来生成一个32位字符串。最通用的一种方式。适用于所有数据库
uuid.string:同样采用128位的UUID算法。将生成的字符编码位16位。适用于除PostgreSQL.以外的数据库
native:根据具体连接的数据库从identity, sequence或者hilo选择一种来生成主键。适用的数据库根据选择的生成方式确定。
assigned: 交给应用自己给主键赋值。要注意的是赋值必须在调用save()方法之前完成。适用的数据库根据选择的生成方式确定。
分享到:
评论

相关推荐

    Hibernate学习笔记整理

    Hibernate学习笔记整理 以下是 Hibernate 框架的详细知识点: Hibernate 介绍 Hibernate 是一个 ORM(Object-Relational Mapping)框架,用于将 Java 对象映射到数据库表中。它提供了一个简洁的方式来访问和操作...

    JPA学习笔记-EJB-03JPA主键生成策略总结

    持久化对象的主键生成机制在JPA(Java Persistence API)中占据着重要的位置。它不仅关乎数据的唯一标识符如何确定,还与数据的存储效率及应用逻辑紧密相关。JPA通过`@GeneratedValue`注解来指定主键生成策略,提供...

    Hibernate映射笔记

    - `native`:根据数据库的原生机制自动生成主键。 - `identity`:数据库提供自增功能时使用,适用于MySQL等。 - `sequence`:利用数据库的序列生成主键,适用于Oracle等。 - `increment`:由Hibernate管理,每次...

    Java相关课程系列笔记之十四Hibernate学习笔记

    四、Hibernate主键生成方式 4.1 五种生成方式 1. assigned:由开发者手动指定主键值。 2. identity:由数据库自动生成(如MySQL的AUTO_INCREMENT)。 3. sequence:使用数据库序列生成(如Oracle)。 4. hilo:基于...

    Hibernate笔记 马士兵

    第12课 使用hibernate工具类将对象模型生成关系模型 19 第13课 ID主键生成策略 20 一、 Xml方式 20 元素(主键生成策略) 20 二、 annotateon方式 21 1、AUTO默认 21 2、IDENTITY 22 3、SEQUENCE 22 4、为Oracle指定...

    hibernate框架笔记

    Hibernate支持多种主键生成策略,包括但不限于: - **increment**:由Hibernate负责自增长。 - **identity**:基于数据库的自增策略。 - **sequence**:基于Oracle等数据库的序列。 - **native**:根据数据库类型...

    hibernate学习笔记_北大青鸟课堂笔记全文

    通过阅读“Hibernate.txt”这份北大青鸟课堂笔记,你可以深入理解Hibernate的核心概念,掌握如何在项目中运用Hibernate进行数据持久化操作。希望这些内容能对你的Hibernate学习之路提供有力的支持。

    hibernate笔记

    5. **在hibernate.cfg.xml文件中添加映射文件路径**:使用`&lt;mapping&gt;`元素指定映射文件的位置。 6. **进行数据操作**:使用Hibernate提供的API进行增删改查等操作。 - 首先通过`Configuration`类加载配置文件。 - ...

    hibernate-note学习笔记

    ### hibernate-note学习笔记知识点详解 #### 一、对象持久化 **1.1 概述** 对象持久化是指将程序中...以上内容覆盖了hibernate-note学习笔记中的核心知识点,对于理解Hibernate的工作原理及其实现细节有着重要的作用。

    hibernate 4.3.10 版本的笔记

    ### Hibernate 4.3.10 版本的笔记知识点详解 #### 一、环境配置与集成 在开始深入探讨Hibernate 4.3.10的相关特性之前,我们需要确保已经正确地配置好了开发环境。根据描述中的部分信息,这里重点介绍如何在...

    Hibernate笔记

    - **sequence:** 如果数据库支持sequence,主键由sequence生成,适用于Oracle。 - **native:** 根据数据库类型自动选择identity, sequence, hilo。 - **increment:** 发送`select max(id) from table`语句获取...

    2023年Java相关课程系列笔记之十四Hibernate学习笔记.doc

    在本篇“2023年Java相关课程系列笔记之十四Hibernate学习笔记”中,我们将深入探讨Java开发中常用的持久化框架——Hibernate。这个框架由梁建全老师主讲,旨在帮助开发者更高效、便捷地进行数据库操作,弥补JDBC在...

    传智博客Hibernate框架2016版笔记资料day01~02

    8. **事务管理**:讨论Hibernate中的事务处理,包括自动提交、手动提交和回滚,以及事务隔离级别的概念。 通过深入学习这些章节,开发者不仅能够掌握Hibernate的基本用法,还能了解其高级特性,从而在实际开发中...

    马士兵hibernate学习笔记

    ### 马士兵 Hibernate 学习笔记概览 #### 一、Hello World 示例 - **简介**:通过简单的示例程序来快速入门 Hibernate 框架。 - **步骤**: 1. 创建 Java 项目 `hibernate_0100_HelloWorld`。 2. 构建 User-...

    hibernate学习笔记01

    ### Hibernate学习笔记01 #### 一、Hibernate简介与安装 **Hibernate** 是一款开源的对象关系映射(Object Relational Mapping, ORM)框架,它能够有效地简化Java应用程序与数据库之间的交互,提供了一种更为优雅...

    hibernate 学习笔记总结

    在Hibernate框架中,实体对象具有三种主要的状态:瞬时态(Transient)、持久态(Persistent)以及脱管态(Detached)。这些状态有助于理解对象与数据库之间的交互过程。 - **瞬时态**:对象尚未被持久化到数据库中...

    J2EE框架_笔记_c

    18-Hibernate复合主键笔记 20-22Hibernate_容器映射技术笔记 23-26Hibernate数据关联技术笔记 27-32Hibernate数据关联技术_1vs1应用案例_笔记 33-37Hibernate1对N案例笔记 38-43Hibernate多对多案例笔记 J2EE框架_...

Global site tag (gtag.js) - Google Analytics