主键生成器负责生成数据表记录的主键:
increment:为long,short或者int类型主键生成唯一标识。只有在没有其他进程往同一张表中插入数据时才能使用。在集群下不能使用!

identity:在DB2,MySQL,Microsoft SQL Server,Sybase和HypersonicSQL等提供identity(自增长)主键支持的数据表中适用。返回的标识属性是long,short或int类型的

sequence:在DB2,PostgreSQL,Oracle,SAP DB,McKoi等提供sequence支持的数据表中适用。返回的标识属性值是long,short或int类型。

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

seqhilo:使用一个高/低位算法来高效的生成long,short或int类型的标识符,需要给定一个数据库sequence名。该算法和hilo稍有不同,它将主键历史状态保存在Sequence中,适用于支持Sequence的数据库,如Oracle。

uuid:用一个128位的UUID算法生成字符串类型的标识符,这在一个网路中是唯一的(IP地址也作为算法的数据源)。UUID被编码为一个32位十六进制数的字符串。

<id name="id" column="id" type="string" length="32">
<generator class="uuid.hex" />
</id>

guid:在Microsoft SQL Server和MySQL中使用数据库生成GUID字符串。

native:根据底层数据库的能力选择identify,sequence或hilo中的一个。

 <id name="id" column="id" type="long">
<generator class="native" />
</id>

assigned:让应用程序在save()之前为对象分配一个标识符。这相当于不指定<generator../>元素默认时采用的默认策略。

<id name="id" type="java.lang.String" column="id" length="32" >
<generator class="assigned" />
</id>

select:通过数据库触发器选择某个唯一主键的行,并返回其主键值作为标识属性值。

foreign:表明直接使用另一个关联对象的标识属性值(即本持久化对象不能生成主键)。

Hibernate主键生成器的更多相关文章

  1. Hibernate主键生成策略详解

    转载自:http://blog.csdn.net/wanghuan203/article/details/7562395 hibernate提供的主键生成策略,使我们可以在实体类的映射xml文件中设定 ...

  2. Hibernate各种主键生成器策略与配置详解(转载)

    http://www.cnblogs.com/kakafra/archive/2012/09/16/2687569.html 1.assigned 主键由外部程序负责生成,在 save() 之前必须指 ...

  3. hibernate主键生成策略

    在hibernate中,提供了多种主键生成器(不同的数据库,不同的表结构使用的主键生成策略也不相同),查阅相关资料经过实验总结如下: 1.increment 主键按照数值顺序递增,使用当前实例中最大值 ...

  4. hibernate主键生成策略(转载)

    http://www.cnblogs.com/kakafra/archive/2012/09/16/2687569.html 1.assigned 主键由外部程序负责生成,在 save() 之前必须指 ...

  5. Hibernate 主键策略

    Hibernate主键生成策略 .自动增长identity 适用于MySQL.DB2.MS SQL Server,采用数据库生成的主键,用于为long.short.int类型生成唯一标识 使用SQL ...

  6. java框架篇---hibernate主键生成策略

    Hibernate主键生成策略 1.自动增长identity 适用于MySQL.DB2.MS SQL Server,采用数据库生成的主键,用于为long.short.int类型生成唯一标识 使用SQL ...

  7. 基于按annotation的hibernate主键生成策略

    基于按annotation的hibernate主键生成策略 博客分类: Hibernate HibernateJavaJPAOracleMySQL  这里讨论代理主键,业务主键(比如说复合键等)这里不 ...

  8. jpa基于按annotation的hibernate主键生成策略

    JPA注解持久化类很方便,需要jar包:ejb3-persistence.jar下载 一.JPA通用策略生成器 通过annotation来映射hibernate实体的,基于annotation的hib ...

  9. hibernate主键生成机制与save返回

    主键生成机制为assigned时,save之后通过get得不到id(主键),使用identity可以. hibernate主键生成机制1) assigned主键由外部程序负责生成,无需Hibernat ...

随机推荐

  1. requests获取所有状态码

    requests获取所有状态码 requests默认是不会获取301/302的状态码的.可以设置allow_redirects=False,这样就可以获取所有的状态码了 import requests ...

  2. (1.1)DML增强功能-CTE

    1.CTE的通用形式 WITH temp_name as ( CTE查询结果集 ) 释义: (1)with/as :关键字 (2)temp_name:为CTE临时使用名称,可以看初学者做是一个临时表 ...

  3. 003-and design-dva.js 知识导图-02-Reducer,Effect,Subscription,Router,dva配置,工具

    一.Reducer reducer 是一个函数,接受 state 和 action,返回老的或新的 state .即:(state, action) => state 增删改 以 todos 为 ...

  4. nmon 命令

    nmon 命令 用途 以交互方式显示本地系统统计信息并以记录方式记录系统统计信息. 语法 交互方式: nmon [ -h ] nmon [ -s < seconds >] [ -c < ...

  5. h5前端项目常见问题汇总

    原文作者:FrontEndZQ 原文链接:https://github.com/FrontEndZQ/HTML5-FAQ H5项目常见问题及注意事项 Meta基础知识: H5页面窗口自动调整到设备宽度 ...

  6. docker——核心实现技术

    作为一种容器虚拟化技术,Docker深度应用了操作系统的多项底层支持技术. 早期版本的Docker是基于已经成熟的Linux Container(LXC)技术实现的.自从0.9版本起,Docker逐渐 ...

  7. requirements.txt

    在文件夹下 生成requirements.txt文件 pip freeze > requirements.txt 安装requirements.txt依赖 pip install -r requ ...

  8. 基于.net core webapi和mongodb的日志系统

    开发环境vs2017,.NET Core2.1, 数据写入到mongodb.思路就是1.提供接口写入日志,2.基于接口封装类库.3.引入类库使用 源码在最后 为什么要写它 很多开源项目像nlog.lo ...

  9. 026-B树(一)

    1.内节点:非根非叶子节点,即非根的分支节点. 2.名称:B-树=B树=平衡多路查找树. 3.定义:m阶B树. (0).根节点孩子数rootChildNum范围:若没有孩子节点则孩子数为0,若有孩子则 ...

  10. ACM ICPC, Amman Collegiate Programming Contest (2018) Solution

    Solution A:Careful Thief 题意:给出n个区间,每个区间的每个位置的权值都是v,然后找长度为k的区间,使得这个区间的所有位置的权值加起来最大,输出最大权值, 所有区间不重叠 思路 ...