hibernarte主键生成机制
1. 主键(id)生成策略
1) assigned
主键由外部程序负责生成,在 save() 之前指定。
2) hilo
通过hi/lo 算法实现的主键生成机制,需要额外的数据库表或字段提供高位值来源。
3) seqhilo
与hilo 类似,通过hi/lo 算法实现的主键生成机制,需要数据库中的 Sequence,适用于支持
Sequence 的数据库,如Oracle。
4) increment
主键按数值顺序递增。此方式的实现机制为在当前应用实例中维持一个变量,以保存着当前的最大值,之后每次需要生成主键的时候将此值加1作为主键。这种方式可能产生 的问题是:不能在集群下使用。
5) identity
采用数据库提供的主键生成机制。如DB2、SQL Server、MySQL 中的主键生成机制。
6) sequence
采用数据库提供的 sequence 机制生成主键。如 Oralce 中的Sequence。
7) native
由 Hibernate 根据使用的数据库自行判断采用 identity、hilo、sequence 其中一种作为主键生成方式。
8) uuid.hex
由 Hibernate 基于128 位 UUID 算法
生成16 进制数值(编码后以长度32 的字符串表示)作为主键。
9) uuid.string
与uuid.hex 类似,只是生成的主键未进行编码(长度16),不能应用在 PostgreSQL 数据中。
10) foreign
使用另外一个相关联的对象的标识符。通常和<one-to-one>联合起来使用。
11)select
通过数据库触发器选择一些唯一主键的行并返回主键值来分配一个主键。
12)guid
在MS SQL Server 和 MySQL 中使用数据库生成的GUID字符串。
最新文章
- C++中的事件分发
- eclipse 的操作
- Java学习-035-JavaWeb_004 -- JSP include 指令
- map的实现
- angularJs中图表功能(有集成框架)-angular-flot
- hadoop_集群安装_2
- JDk 内部分工具 简述
- 如何使用GCD(ZZ)
- MySQL 5.6 解决InnoDB: Error: Table ";mysql";.";innodb_table_stats"; not found.问题
- golang 性能
- [转] windows 上用程序putty使用 ssh自动登录Linux(Ubuntu)
- spring的优缺点
- 在Visual Studio 2017上配置Glut
- CSS3制作图形大全——碉堡了
- libnids-1.24 使用源码问题
- springmvc的简单使用以及ssm框架的整合
- Lua: 给 Redis 用户的入门指导(转)
- matplotlib画的图保存为emf格式
- go VS NET 字符串操作能力
- bootstrap-datapicker 时间约束
热门文章
- java中代码块和构造方法以及普通方法的代码执行顺序总结
- 总结 | 慢 SQL 问题经验总结
- 线程的函数中调用MFC对话框类的变量
- 解决:使用java连接Fastdfs,上传文件时报:SocketTimeOutException的问题
- react 在新窗口 打开页面
- Delphi 使用断点
- C#将html table 导出成excel实例
- uestc summer training #3 线段树优化建边
- 第一次把本地项目与git相连
- BZOJ1233 [Usaco2009Open]干草堆tower[贪心+单调队列优化]