Hibernate主键生成器
主键生成器负责生成数据表记录的主键:
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主键生成器的更多相关文章
- Hibernate主键生成策略详解
转载自:http://blog.csdn.net/wanghuan203/article/details/7562395 hibernate提供的主键生成策略,使我们可以在实体类的映射xml文件中设定 ...
- Hibernate各种主键生成器策略与配置详解(转载)
http://www.cnblogs.com/kakafra/archive/2012/09/16/2687569.html 1.assigned 主键由外部程序负责生成,在 save() 之前必须指 ...
- hibernate主键生成策略
在hibernate中,提供了多种主键生成器(不同的数据库,不同的表结构使用的主键生成策略也不相同),查阅相关资料经过实验总结如下: 1.increment 主键按照数值顺序递增,使用当前实例中最大值 ...
- hibernate主键生成策略(转载)
http://www.cnblogs.com/kakafra/archive/2012/09/16/2687569.html 1.assigned 主键由外部程序负责生成,在 save() 之前必须指 ...
- Hibernate 主键策略
Hibernate主键生成策略 .自动增长identity 适用于MySQL.DB2.MS SQL Server,采用数据库生成的主键,用于为long.short.int类型生成唯一标识 使用SQL ...
- java框架篇---hibernate主键生成策略
Hibernate主键生成策略 1.自动增长identity 适用于MySQL.DB2.MS SQL Server,采用数据库生成的主键,用于为long.short.int类型生成唯一标识 使用SQL ...
- 基于按annotation的hibernate主键生成策略
基于按annotation的hibernate主键生成策略 博客分类: Hibernate HibernateJavaJPAOracleMySQL 这里讨论代理主键,业务主键(比如说复合键等)这里不 ...
- jpa基于按annotation的hibernate主键生成策略
JPA注解持久化类很方便,需要jar包:ejb3-persistence.jar下载 一.JPA通用策略生成器 通过annotation来映射hibernate实体的,基于annotation的hib ...
- hibernate主键生成机制与save返回
主键生成机制为assigned时,save之后通过get得不到id(主键),使用identity可以. hibernate主键生成机制1) assigned主键由外部程序负责生成,无需Hibernat ...
随机推荐
- Linux下使用iotop检测磁盘io使用情况
介绍 Linux下的IO统计工具如iostat, nmon等大多数是只能统计到per设备的读写情况, 如果你想知道每个进程是如何使用IO的就比较麻烦. iotop 是一个用来监视磁盘 I/O 使用状况 ...
- Python菜鸟之路:Django Admin后台管理功能使用
前言 用过Django框架的童鞋肯定都知道,在创建完Django项目后,每个app下,都会有一个urls.py文件,里边会有如下几行: from django.contrib import admin ...
- Git 基本操作(二)
1. 分支操作 1.1 Fast-forward 当被合并分支(C4)位于合并分支(C2)的历史线上,此时的合并称为"fast-forward"; // hotfix 被合并到 m ...
- day14(编码实战-用户登录注册)
day14 案例:用户注册登录 要求:3层框架,使用验证码 功能分析 注册 登录 1.1 JSP页面 regist.jsp 注册表单:用户输入注册信息: 回显错误信息:当注册失败时,显示错误信 ...
- centos LB负载均衡集群 三种模式区别 LVS/NAT 配置 LVS/DR 配置 LVS/DR + keepalived配置 nginx ip_hash 实现长连接 LVS是四层LB 注意down掉网卡的方法 nginx效率没有LVS高 ipvsadm命令集 测试LVS方法 第三十三节课
centos LB负载均衡集群 三种模式区别 LVS/NAT 配置 LVS/DR 配置 LVS/DR + keepalived配置 nginx ip_hash 实现长连接 LVS是四层LB ...
- ubuntu16.04 安装指定版本Node,升级npm到指定版本
一.安装配置Node 1.下载(64位系统) wget https://nodejs.org/download/release/v10.1.0/node-v10.1.0-linux-x64.tar.g ...
- mydumper/myloader使用详解
mydumper安装:http://www.cnblogs.com/lizhi221/p/7010174.html mydumper原理:http://www.cnblogs.com/lizhi2 ...
- C++类型前置声明
前言 本文总结了c++中前置声明的写法及注意事项,列举了哪些情况可以用前置声明来降低编译依赖. 前置声明的概念 前置声明:(forward declaration), 跟普通的声明一样,就是个声明, ...
- C++ Builder创建和调用dll中的资源
程序开发中经常会用到一些图标.图片.光标.声音等,我们称它们为资源(Resource).当多个窗口用到同样的资源时,可以将这些公共的资源放到一个dll文件里调用,这样,由于定位资源比在磁盘中定位文件花 ...
- MyBatis—动态SQL
什么是动态SQL? 1.基于OGNL表达式 2.完成多条件查询的逻辑 3.动态SQL的主要元素 (if,trim,where,set,choose,foreach) where标签 可以根据if中是否 ...