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

Hibernate主键产生器总结

阅读更多
Hibernate主键产生器的可选项说明:
1) Assigned
     主键由外部程序负责生成,无需Hibernate参与。
2) hilo
     通过hi/lo 算法实现的主键生成机制,需要额外的数据库表保存主键生成历史状态。
3) seqhilo
     与hilo 类似,通过hi/lo 算法实现的主键生成机制,只是主键历史状态保存在Sequence中,适用于支持Sequence的数据库,如Oracle。
4) increment
     主键按数值顺序递增。此方式的实现机制为在当前应用实例中维持一个变量,以保存着当前的最大值,之后每次需要生成主键的时候将此值加1作为主键。
     这种方式可能产生的问题是:如果当前有多个实例访问同一个数据库,那么由于各个实例各自维护主键状态,不同实例可能生成同样的主键,从而造成主键重复异常。因此,如果同一数据库有多个实例访问,此方式必须避免使用。
5) identity
      采用数据库提供的主键生成机制。如DB2/SQLServer/MySQL中的主键生成机制。
6) sequence
      采用数据库提供的sequence机制生成主键。如Oralce中的Sequence。
7) native
      由Hibernate根据底层数据库自行判断采用identity/hilo/sequence其中一种作为主键生成方式。
8) uuid.hex
      由Hibernate基于128 位唯一值产生算法生成16 进制数值(编码后以长度32 的字符串表示)作为主键。
9) uuid.string
      与uuid.hex 类似,只是生成的主键未进行编码(长度32)。在某些数据库中可能出现问题(如PostgreSQL)。
10) foreign
      使用外部表的字段作为主键。


Hibernate映射类型 Java类型 标准SQL类型 大小
integer/int java.lang.Integer/int INTEGER 4字节
long java.lang.Long/long BIGINT 8字节
short java.lang.Short/short SMALLINT 2字节
byte java.lang.Byte/byte TINYINT 1字节
float java.lang.Float/float FLOAT 4字节
double java.lang.Double/double DOUBLE 8字节
big_decimal java.math.BigDecimal NUMERIC ?
character java.lang.Character/
java.lang.String/char CHAR(1) 定长字符
string java.lang.String VARCHAR 变长字符
boolean/ yes_no/true_false java.lang.Boolean/Boolean BIT 布尔类型
date java.util.Date/
java.sql.Date DATE 日期
timestamp java.util.Date/
java.util.Timestamp TIMESTAMP 日期
calendar java.util.Calendar TIMESTAMP 日期
calendar_date java.util.Calendar DATE 日期
binary byte[] BLOB BLOB
text java.lang.String TEXT CLOB
serializable 实现java.io.
Serializablej接口
的任意Java类 BLOB BLOB
clob java.sql.Clob CLOB CLOB
blob java.sql.Blob BLOB BLOB
class java.lang.Class VARCHAR 定长字符
locale java.util.Locale VARCHAR 定长字符
timezone java.util.TimeZone VARCHAR 定长字符
currency java.util.Currency VARCHAR 定长字符

分享到:
评论
1 楼 nenty 2008-12-26  
学习中,好东西!

相关推荐

    sql主键产生器

    "SQL主键产生器"就是这样一个工具,它能帮助我们在创建或更新表时自动为主键字段生成唯一值。 SQL主键产生器通常有以下几种实现方式: 1. **序列(Sequences)**:在某些数据库系统如Oracle中,可以创建序列对象来...

    Hibernate学习笔记整理

    主键的产生器 * Increment:查找主键的最大值,在最大值的基础上加 1 * Assigned:由程序手动赋值 * Identity:支持主键自动增长 * Uuid:持久化类中的属性必须是 String 类型 * Native:Hibernate 会根据数据库的...

    hibernate3.2 源码

    这个压缩包包含的是Hibernate 3.2版本的源代码,这是一个非常重要的里程碑,因为它在当时引入了许多改进和新特性,对Java社区产生了深远的影响。 在Hibernate 3.2中,有几个关键的知识点值得一提: 1. **对象关系...

    最经典的hibernate教程

    Session 是 Hibernate 的持久化管理器的核心,提供了一系列的持久化操作方法。另外,它还持有一个针对持久化对象的一级缓存,在遍历持久化对象或根据持久化标识查找对象时会用到。 - **Transaction**: 功能上和...

    J2EE考试复习试题_struts2_spring_hibernate.doc

    - **主键生成策略**:在Hibernate XML映射文件中,主键生成策略(如`increment`、`identity`、`sequence`等)可通过`<id>`标签的`generator-class`属性指定。 - **实体类映射**:使用Hibernate的标注(annotations)...

    经典hibernate教程,从入门到精通(第二篇,共四篇).ppt

    主键生成器如Increment,会自动递增生成ID,但在多线程环境中需要特别注意并发问题,避免同一时刻多个进程获取到相同的初始值。 除了基本操作,Hibernate还提供了更高级的功能,如懒加载(lazy loading)、级联操作...

    Hibernate Annotation Reference

    标题:Hibernate ...总结而言,Hibernate注解提供了强大的工具集,用于高效地映射实体、定义查询、实施数据验证以及集成全文搜索功能。深入理解和灵活运用这些注解,对于构建高性能、可维护的Java持久层至关重要。

    JAVAEE试题(含答案).pdf

    1. Hibernate 主键生成策略中, increment 是实现主键按数值顺序递增的策略。 2. 在 JSP 中, Page 指令的 import 属性用来引入需要的包和类。 3. Servlet 的初始参数可以从 ServletConfig 中获得。 4. Hibernate 是...

    JAVAEE试题(含答案).docx

    1. Hibernate主键生成策略:Hibernate提供了多种主键生成策略,包括increment、identity、sequence、native等。其中,sequence策略可以实现主键按数值顺序递增。 2. JSP Page指令的import属性:Page指令的import...

    ssh(structs,spring,hibernate)框架中的上传下载

     LobHandler必须注入到Hibernate会话工厂sessionFactory中,因为sessionFactory负责产生与数据库交互的Session。LobHandler的配置如代码 5所示:  代码 5 Lob字段的处理句柄配置 1. 2. … 3. 4. class="org....

    黄淮学院J2EE考试复习试题

    在Hibernate XML映射文件中描述主键生成机制时,`<id>`元素的`generator-class`属性描述了主键的生成策略。常见的生成策略包括: - `increment`:自动递增。 - `identity`:数据库自增长。 - `sequence`:使用...

    JBPM工作流开发指南

    但是,如果在Eclipse中同时安装了MyEclipse插件,则可能产生冲突。这种冲突主要表现在JBPM的流程设计器在Eclipse中无法正常使用。冲突的原因可能是由于两个插件在某些资源或API上存在不兼容的情况。 #### 工作流与...

    SSH框架部分常见面试题.pdf

    list() 和 iterator() 是 Hibernate 中的两个查询方法,list() 用于返回查询结果的列表,iterator() 用于返回查询结果的迭代器。 Hibernate 的缓存机制 Hibernate 的缓存机制用于加速数据库查询,缓存机制可以分为...

    SSH框架和Oracle的简单应用

    ### SSH框架和Oracle的简单应用 #### 一、SSH框架简介 SSH框架指的是Spring、Struts和Hibernate三个开源框架...以上就是关于SSH框架和Oracle简单应用的知识点总结,涵盖了从理论到实践的各个方面,希望对你有所帮助。

    Spring.3.x企业应用开发实战(完整版).part2

    12.2.4 添加Hibernate事件监听器 12.2.5 使用原生Hibernate API 12.2.6 使用注解配置 12.2.7 事务处理 12.2.8 延迟加载的问题 12.3 在Spring中使用myBatis 12.3.1 配置SqlMapClient 12.3.2 在Spring配置myBatis ...

    Spring3.x企业应用开发实战(完整版) part1

    12.2.4 添加Hibernate事件监听器 12.2.5 使用原生Hibernate API 12.2.6 使用注解配置 12.2.7 事务处理 12.2.8 延迟加载的问题 12.3 在Spring中使用myBatis 12.3.1 配置SqlMapClient 12.3.2 在Spring配置myBatis ...

    从J2SE到J2EE知识点介绍

    6. **复合主键和类型**:复合自然主键的映射,以及各种Java类型在Hibernate中的映射,如基本类型、时间日期类型和大对象类型。 7. **事务和并发**:探讨Hibernate的事务管理以及并发控制。 【Spring 3.X】 Spring...

    Spring+3.x企业应用开发实战光盘源码(全)

     第11章:讲解了如何使用Spring JDBC进行数据访问操作,我们还重点讲述了LOB字段处理、主键产生和获取等难点知识。  第12章:讲解了如何在Spring中集成Hibernate、myBatis等数据访问框架,同时,读者还将学习到ORM...

    BeetlSQL文档.pdf

    BeetlSQL是一款全功能的DAO(数据访问对象)工具,它融合了Hibernate和Mybatis的优点,适用于以SQL为中心的应用开发。在强调SQL重要性的同时,BeetlSQL能够自动产生大量常用的SQL语句,从而大幅提高开发效率和维护性...

Global site tag (gtag.js) - Google Analytics