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

Hibernate的id生成机制

 
阅读更多

下午学习的过程中遇到一个问题 很纠结……

代码写的没有错 也能运行就是插不到数据库里去,找了很多方法都不行!!最后发现

<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="identity" /><!-- 这里比较奇怪啊 如果使用increment就不能插入数据 而使用了identity就可以???????????????? -->
</id>

基于XML配置
<id name="id" type="java.lang.Integer">
<column name="ID" precision="8" scale="0" />
<generator class="native" />
</id>

常见的generator:
increment:用于long、short、int类型唯一标识,只有在没有其他进程往同一张表中插入数据时才能使用,在集群下不能使用

identity:采用数据库提供的主键生成机制。如DB2、SQL Server、MySQL 中的主键生成机制。

sequence:采用数据库提供的sequence机制生成主键。如 Oralce 中的Sequence。

native: 由Hibernate 根据使用的数据库自行判断采用identity、hilo、sequence 其中一种作为主键生成方式。跨数据库平台!

hilo:通过hi/lo 算法实现的主键生成机制,需要额外的数据库表或字段提供高位值来源

uuid.string:与uuid.hex类似,只是生成的主键未进行编码(长度16),不能应用在 PostgreSQL数据库中。 (要求主键是String类型)

分享到:
评论

相关推荐

    Hibernate教程02_ID生成策略

    - 数据库类型:不同的数据库支持的ID生成机制不同。 - 性能需求:例如,HiLo策略在大多数情况下性能较好,但不适用于高并发环境。 - 分布式环境:如果系统部署在多个服务器上,可能需要使用UUID或Table策略以确保...

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

    Hibernate是Java平台上的一个开源框架,它的主要功能是提供一种映射机制,将Java类与数据库表进行对应,从而避免了传统的JDBC代码编写。Hibernate支持多种数据库,包括MySQL、Oracle、PostgreSQL等,具有高度可移植...

    hibernate中自动生成主键的办法

    综上所述,Hibernate提供了丰富的主键生成策略,涵盖了从简单的自动增长到复杂的分布式唯一ID生成。开发者应根据具体的应用需求和数据库特性,选择最合适的主键生成策略,以确保系统的稳定性和性能。无论是追求高...

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

    6. 设置 Id Generator:在这里,可以选择 Id Generator 的类型,例如,可以选择 identity,让数据库提供主键生成机制,也可以选择 assigned,让外部程序负责生成主键。 7. 处理主外键关系:如果存在主外键关系,可以...

    hibernate主键生成策略详解

    **seqhilo** 策略与 **hilo** 类似,同样是基于 hi/lo 算法实现的主键生成机制,不同之处在于它使用了序列(sequence)而不是额外的数据表来保存高位值 hi。这种策略适用于支持序列的数据库,例如 Oracle 数据库。 ...

    hibernate 主键生成策略

    - **描述**:此策略根据所使用的数据库类型自动选择最适合的主键生成机制。对于 Oracle 数据库,它会使用 Sequence 方式;对于 MySQL 和 SQL Server,则使用 identity(自增主键生成机制)。这种方法非常灵活,通常...

    自动生成hibernate映射文件和实体类

    如果没有自己勾选一下,下一步,可以设置每张表中 id 增长方式,及生成的映射文件名称。 最后,在 MyEclipse Enterprise 视图下,所有实体类以及配置文件已生成。这便完成了使用 MyEclipse 自动生成 Hibernate 映射...

    Hibernate映射文件主键的生成

    在Hibernate中,只需在实体类的主键字段上添加`@GeneratedValue(strategy = GenerationType.IDENTITY)`注解,Hibernate会自动调用数据库的内置机制来生成主键。 2. **Sequence策略**: 适用于Oracle等支持序列的...

    仿hibernate动态生成sql保存对象

    本文将深入探讨如何模仿Hibernate的功能,动态生成SQL来保存对象,以及与之相关的技术如注解(Annotation)和数据库字段映射。 首先,让我们了解一下Hibernate的核心功能:对象持久化。Hibernate允许开发者将Java...

    hibernate主键生成策略

    - **实现机制**:该策略由`org.hibernate.id.IdentifierGenerator`接口实现,通过递增的方式生成主键值。 - **应用场景**:当数据表中的记录数量相对较少,并且不会同时有多个进程尝试插入数据时,可以使用此策略。 ...

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

    在Java开发中,Hibernate是一个非常流行的ORM(对象关系映射)框架,它允许开发者使用面向对象...这个过程涉及到Java反射、XML处理以及对Hibernate映射机制的理解,对于深入掌握Java与数据库的交互具有重要的实践意义。

    JAVA 的ID生成策略

    JAVA ID生成策略是Hibernate框架中的一种重要机制,用于生成实体类的主键值。它提供了多种生成策略,适用于不同的数据库管理系统,能够满足不同的应用需求。开发者可以根据实际情况,选择合适的生成策略,确保数据的...

    Hibernate数据类型映射及ID

    标题:“Hibernate数据类型映射及ID” ...总之,Hibernate通过其强大的数据类型映射机制和灵活的ID生成策略,为开发者提供了高效、便捷的对象关系映射体验,使得Java应用能够无缝地与各种关系型数据库进行交互。

    Swing编写的Hibernate生成器

    3. **注解**:如`@Entity`表示这是一个Hibernate实体,`@Table`指定对应数据库中的表名,`@Id`标识主键,`@GeneratedValue`处理主键生成策略。 除了实体类,生成器还会自动生成对应的Hibernate映射文件(.hbm.xml)...

    Hibernate的主键生成方式

    - **定义**:利用数据库自身的序列(sequence)机制来生成主键值。 - **应用场景**:适用于支持序列的数据库如Oracle等。 7. **native** - **定义**:Hibernate会根据当前使用的数据库类型自动选择最适合的主键...

    ID生成策略

    值得注意的是,在某些数据库如Oracle中,虽然不直接支持`IDENTITY`关键字,但可以通过其他方式来实现类似的自增ID生成机制。 #### 2. Sequence(序列) `Sequence`是一种适用于支持序列操作的数据库系统(如DB2和...

    用hibernate形式uuid的生成算法

    本文将深入探讨如何使用Hibernate的形式生成UUID,通过分析一个具体的代码示例——`UUIDHexGenerator`类,来理解其内部机制和工作原理。 #### UUIDHexGenerator类解析 `UUIDHexGenerator`类位于`com.general`包下...

    idea hibernate jpa 生成实体类的实现

    IDEA Hibernate JPA 生成实体类的实现 在本篇博客中,我们将主要介绍 IDEA 中使用 Hibernate JPA 生成实体类的实现步骤。通过示例代码,我们将...通过本篇博客,我们可以更好地理解 Hibernate JPA 的使用和实现机制。

    Java探索之Hibernate主键生成策略详细介绍

    Sequence主键生成策略是使用数据库提供的sequence机制生成主键。这种策略需要数据库支持sequence,如Oracle、DB、SAP DB、PostgreSQL、McKoi等。MySQL这种不支持sequence的数据库则不行(可以使用identity)。 例子...

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

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

Global site tag (gtag.js) - Google Analytics