`
天机老人
  • 浏览: 151407 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Hibernate主键生成native,identity不可用,increment可以

    博客分类:
  • Java
阅读更多
   公司开发基本上不用写Hibernate批注,因为公司有引以为自豪的实体类生成工具!
    但是基本上要改动一下批注!默认情况下每个实体类的主键生成策略是assigned.

   大家都知道assigned 就是由数据库外部程序指定的方式!
    但是我们大多开发都是喜欢自动生成,自动生成必然首选native啦!应为这个方式可以让你的程序数据库移植性变的更强!
    但是试了试不可以,出错了!我想identity总可以吧(应为我们的数据库用的是mysql)。实质上也是不可以的,但是当我改成Increment的时候!居然可以啊!
    都是自增长区别咋就那么大呢?
   
    仔细查看了一下Hibernate代码,哎,利用上班时间研究东西就是爽啊,呵呵!
    发现实质上native,identity是没错的,但是因为我们公司的开发方式是才让这种错误产生!
    公司的开发是用pd生成数据库sql,然后利用公司程序导出相应的实体类!
    (实体类会把你建表的一整套东西都搞定的,呵呵!)
    这样的话其实数据库里面你没有规定他的增长方式,so....native.identity是无效的。当然,正常开发的时候我们是根据实体类生成表!这样就是有用的了!
    而increment之所以有用就是因为,他是Hibernate维护的一个计时器!也算是程序加入主键的一种方式把。
   
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    hibernate映射主键生成策略native

    通过以上内容可以看出,在Oracle环境下使用Hibernate的“native”策略生成主键是一种高效且灵活的方式。只需要在映射文件中简单地指定`<generator class="native"></generator>`即可实现。同时,还需要注意数据库中...

    Hibernate主键生成方式

    以下是关于Hibernate主键生成方式的详细说明: 1. **Identity方式**:`<generator class="identity"/>` 这种方式依赖于数据库自身的自动增长机制。例如,在MySQL中,它可以与`AUTO_INCREMENT`属性配合使用。当...

    hibernate主键生成策略

    通过上述介绍,我们可以看出 Hibernate 支持多种不同的主键生成策略,每种策略都有其独特的应用场景和优缺点。开发者可以根据实际需求选择最适合的策略来满足项目的需求。在实际应用中,`native` 和 `assigned` 是最...

    常用Hibernate主键生成策略

    ### 常用Hibernate主键生成策略详解 #### 一、引言 在数据库设计与操作过程中,主键是确保数据唯一性的关键要素之一。在实际应用中,开发者经常需要处理不同类型的数据库,并且需要应对各种不同的主键生成需求。...

    Hibernate主键生成策略

    - **描述**:用户在插入数据时手动指定主键值,Hibernate 不参与主键的生成。 - **优点**:完全控制主键的生成,可以满足某些特定的需求。 - **缺点**:需要程序员自行处理主键的唯一性。 - **应用场景**:当...

    Hibernate中主键生成策略

    主键值由应用程序手动设置,Hibernate不参与主键生成。使用`<generator class="assigned">`或不使用`@GeneratedValue`注解。 9. **HiLo算法**: 一种优化的主键生成方式,使用较小的整数范围(高位数)和数据库表...

    Hibernate各种主键生成策略

    Hibernate各种主键生成策略详解,包括 assigned increment hilo seqhilo sequence identity native uuid foreign uuid.hex sequence-identity 等

    hibernate 主键生成策略

    Hibernate 不参与主键的生成过程。 - **应用场景**:当需要对主键有完全控制权或使用具有特殊意义的主键值时使用。 #### 3. Increment - **描述**:Hibernate 自动为主键分配一个递增的值,但此策略仅在一个 JVM ...

    hibernate的主键生成策略

    以下是对Hibernate主键生成策略的详细说明: 1. **assigned**: 这种策略要求用户在调用`save()`方法之前手动设置主键值。Hibernate不参与主键的生成,这意味着主键生成完全由应用控制,可以与数据库无关。这种...

    Hibernate主键生成

    在Java持久化框架Hibernate中,主键生成策略是至关重要的,因为它决定了如何为数据库表的记录生成唯一的标识符。主键生成器确保了每个记录都有一个独一无二的标识,这对于数据的完整性至关重要。以下是Hibernate中...

    Hibernate映射文件主键的生成

    以上就是Hibernate主键生成的常见策略,每种策略都有其适用的场景。在实际开发中,应根据数据库类型和需求选择合适的主键生成策略,确保数据的一致性和完整性。理解并正确配置这些策略,将有助于提高程序的稳定性和...

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

    Hibernate主键生成策略详细介绍 在Java探索中,Hibernate提供了多种主键生成策略,满足不同场景下的需求。下面是对Hibernate主键生成策略的详细介绍: 1. Increment主键生成策略 Increment主键生成策略是由...

    Hibernate的主键生成方式

    - **定义**:Hibernate会根据当前使用的数据库类型自动选择最适合的主键生成策略(如identity、hilo、sequence)。 - **应用场景**:适用于跨数据库平台的应用开发,可以避免因为数据库不同而导致的代码修改。 8....

    持久化类主键生成策略+例子

    ### Hibernate主键生成策略 1. **`native`**:类似于JPA的`GenerationType.AUTO`,根据底层数据库选择合适的生成策略。 2. **`identity`**:相当于JPA的`GenerationType.IDENTITY`,适合自动增长主键的数据库。 3...

Global site tag (gtag.js) - Google Analytics