zoukankan      html  css  js  c++  java
  • hibernate 主键生成策略

    Hibernate中主键的生成策略主要有以下几种:

    (1)uuid

    原理是使用128位的uuid算法产生主键,从而能够确保网络环境下的一致性。使用此生成策略时,实体类的主键是String类型的,映射成表中字段为varchar。适用所有数据库。

    1. <id name="id" column="id">  
    2. <span style="white-space:pre">    </span><generator class="uuid"></generator>  
    3. </id>  

    (2)native

    原理是根据数据库类型自动选择sequence、identify以及hilo。使用此生成策略时,实体类的主键是int类型的,映射成表中字段为int,若为mysql,则id自增长。

    1. <id name="id" column="id">  
    2.     <generator class="native"></generator>  
    3. </id>  

    (3)identity

    原理是适用于MySQL、DB2、MS SQL Server,采用数据库生成的主键,用于为long、short、int类型生成唯一标识。

    (4)increment

    用于为long, short或者int类型生成 唯一标识。只有在没有其他进程往同一张表中插入数据时才能使用。 在集群下不要使用。 

    (5)sequence

    在DB2,PostgreSQL, Oracle, SAP DB, McKoi中使用序列(sequence), 而在Interbase中使用生成器(generator)。返回的标识符是long, short或者 int类型的。

    (6)hilo

    使用一个高/低位算法高效的生成long, short 或者 int类型的标识符。给定一个表和字段(默认分别是 hibernate_unique_key 和next_hi)作为高位值的来源。 高/低位算法生成的标识符只在一个特定的数据库中是唯一的。

    使用注解时,默认为:@GeneratedValue ,等同于native策略。

  • 相关阅读:
    js 手写 map 函数
    前端 实现 opensearch功能 (umi项目中如何实现)
    react 中 Link 标签 重新打开一个新的浏览器窗口
    umi 框架 如何配置 自定义 插件 和 loader
    webpack 自定义 plugin ?
    webpack 自定义 loader ?
    webpack 基础篇 ?
    webpack 是什么 ?
    http 状态码总结
    前端炒鸡好用的库推荐 (欢迎补充交流)
  • 原文地址:https://www.cnblogs.com/cglWorkBook/p/4808166.html
Copyright © 2011-2022 走看看