hibernate的id生成策略
欢迎转载,请注明出处http://www.cnblogs.com/shizhongtao/p/3436523.html
一、xml配置方式的id生成
<id name="id" >
<generator class="native"></generator>
</id>
其中class常用的值有四个,native、 identity、 sequence、 uuid。
注:其中native和uuid不局限与数据库。如果用oracle的话。使用native,就会在数据库中使用sequence来自动生成id;在mysql中。会设置id auto_increatment(代表id自动增长)
“uuid.hex” : 由 Hibernate 基于128 位 UUID 算法 生成16 进制数值(编码后以长度32 的字符串表示)作为主键。
“uuid.string” : 与uuid.hex 类似,只是生成的主键未进行编码(长度16),不能应用在 PostgreSQL 数据库中。
二、注解(anotation)方式
- auto方式在主键id上标注,@GeneratedValue
(@GeneratedValue(strategy=GenerationType.AUTO)) 默认:对 MySQL,使用auto_increment
对 Oracle使用hibernate_sequence(名称固定) - 使用IDENTITY(@GeneratedValue(strategy=GenerationType.IDENTITY)
使用于sql server,mysql数据库中,oracle不适用
- SEQUENCE(@GeneratedValue(strategy=GenerationType.SEQUENCE))(在oracle中使用)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "teacherSEQ")
public class Teacher
{
private int id;
private String name;@SequenceGenerator(name="teacherSEQ", sequenceName="teacherSEQ_DB")
public int getId()
{
return id;
}
public void setId(int id)
{
this.id = id;
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
} - 使用uuid方式,和上面的sequence的方式类似
@Id
@GenericGenerator(name = "system-uuid", strategy = "uuid.hex")
@GeneratedValue(generator = "system-uuid")
public String getId() {
return id;
} - 使用table方式,待续……
三、联合主键
hibernate的id生成策略的更多相关文章
- hibernate 中id生成策略
数据库的设计和操作中,我们通常会给表建立主键. 主键,可以分为自然主键和代理主键. 自然主键表示:采用具有业务逻辑含义的字段作为表的主键.比如在用户信息表中,采用用户的身份证号码作为主键.但是这样一来 ...
- Hibernate学习笔记2.4(Hibernate的Id生成策略)
通过设置告诉id该怎么设置. 1.通过xml方式 1.assigned 主键由外部程序负责生成,在 save() 之前必须指定一个.Hibernate不负责维护主键生成.与Hibernate和底层数据 ...
- hibernate(四)ID生成策略
一.ID生成策略配置 1.ID生成方式在xml中配置方式: <?xml version="1.0"?> <!DOCTYPE hibernate-mapping P ...
- Hibernate系列之ID生成策略
一.概述 hibernate中使用两种方式实现主键生成策略,分别是XML生成id和注解方式(@GeneratedValue),下面逐一进行总结. 二.XML配置方法 这种方式是在XX.hbm.xml文 ...
- Rhythmk 学习 Hibernate 03 - Hibernate 之 延时加载 以及 ID 生成策略
Hibernate 加载数据 有get,跟Load 1.懒加载: 使用session.load(type,id)获取对象,并不读取数据库,只有在使用返回对象值才正真去查询数据库. @Test publ ...
- [Hibernate开发之路](4)ID生成策略
一 对象关系数据库映射之Id 被映射的类必须定义相应数据库表主键字段.大多数类有一个JavaBeans风格的属性, 为每个实例包括唯一的标识. <id> 元素定义了该属性到数据库表主键字段 ...
- hibernate ID生成策略配置
1.Student.hbm.xml配置 <hibernate-mapping package="com.wxh.hibernate.model"> <class ...
- java框架篇---hibernate主键生成策略
Hibernate主键生成策略 1.自动增长identity 适用于MySQL.DB2.MS SQL Server,采用数据库生成的主键,用于为long.short.int类型生成唯一标识 使用SQL ...
- Hibernate主键生成策略详解
转载自:http://blog.csdn.net/wanghuan203/article/details/7562395 hibernate提供的主键生成策略,使我们可以在实体类的映射xml文件中设定 ...
随机推荐
- TC SRM 665 DIV2 A LuckyXor 暴力
LuckyXorTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 TC Description A lucky number is a positive int ...
- UserAgentStringLibrary
It is at WebWorkContext.CurrentCustomer's part. //check whether request is made by a search engine / ...
- android 注册、登录实现程序
注册页面: user_register.xml: <?xml version="1.0" encoding="utf-8"?> <Linear ...
- C语言第一节 C语言程序与开发工具
开发工具的选择 可以用来写代码的工具:记事本.UltraEdit.Vim.Xcode等 选择Xcode的原因:苹果官方提供的开发利器.简化开发过程.有高亮显示功能 使用Xcode新建一个C程序的源代码 ...
- Old Calculator
描述 szhhck have an old calculator bought 5 years ago.he find the old machine can just calculate expre ...
- Java SE ---数据类型
Java中数据类型(Data Type)分为基本数据类型(Primitive Data Type)和引用类型(Reference Data Type). Java中的基本数据类型共有以下8种: 1 ...
- App Thinning
App Thinning 由于项目中需要开启Bitcode编译,之前对Bitcode也有些误区,故整理了下相关知识,仅供参考,如有不对,还请指出. 当前 iOS App 的编译打包方式是把适配兼容多个 ...
- Oracle 经典语法(二)
--提示:工资 = 薪金 + 佣金 1. 找出EMP表中的姓名(ENAME)第三个字母是A 的员工姓名.SELECT ENAME FROM SCOTT.EMP WHERE ENAME LIKE '__ ...
- 贴心小技能——纯CSS实现的帮助提示
1. 新技能传授---哒哒哒哒 我们经常会接到这样的小需求,鼠标放在某个位置实现一段小提示. 你还在用js实现这样一个小功能,你就太out了,来看看我们用纯CSS打造的帮助提示. 2. html &l ...
- [转]IIS7.5 添加expires头 提高性能
本文转自:http://niutuku.com/tech/www/271454.shtml 对于页面中不经常变化的静态内容通过指定expires头,来进行浏览器端的缓存,减少每次访问时的请求. 原理: ...