- 浏览: 22247 次
- 性别:
- 来自: 济南
最新评论
此处我们只针对常用的数据库类型进行说明,其他的略过:
1 Oracle使用sequence
数据库中的语法如下:
Oracle:create sequence seq_name increment by 1 start with 1;
需要主键值时可以调用seq_name.nextval或者seq_name.curval得到,数据库会帮助我们维护这个sequence序列,保证每次取到的值唯一,如:
Hibernate配置文件:
<id name="id" column="id" type="long">
<column name="id">
<generator class="sequence">
<param name="sequence">seq_name</param>
</generator>
</id>
如果我们没有指定sequence参数,则Hibernate会访问一个默认的sequence,是hibernate_sequence,我们也需要在数据库中建立这个sequence
2 MySQL、SQL Server使用identity
数据库中的语法如下:
MySQL:create table t_user(id int auto_increment primary key, name varchar(20));
SQL Server:create table t_user(id int identity(1,1) primary key, name varchar(20));
<id name="id" column="id" type="long">
<generator class="identity" />
</id>
3 native
会根据底层数据库的能力,从identity、sequence、hilo中选择一个,灵活性更强,但此时,如果选择sequence或者hilo,则所有的表的主键都会从Hibernate默认的sequence或者hilo表中取。并且,有的数据库对于默认情况主键生成测试的支持,效率并不是很高
对于 oracle 采用 Sequence 方式,对于MySQL 和 SQL Server 采用identity(自增主键生成机制),native就是将主键的生成工作交由数据库完成,hibernate不管(很常用)
<id name="id" column="id">
<generator class="native" />
</id>
1 Oracle使用sequence
数据库中的语法如下:
Oracle:create sequence seq_name increment by 1 start with 1;
需要主键值时可以调用seq_name.nextval或者seq_name.curval得到,数据库会帮助我们维护这个sequence序列,保证每次取到的值唯一,如:
Hibernate配置文件:
<id name="id" column="id" type="long">
<column name="id">
<generator class="sequence">
<param name="sequence">seq_name</param>
</generator>
</id>
如果我们没有指定sequence参数,则Hibernate会访问一个默认的sequence,是hibernate_sequence,我们也需要在数据库中建立这个sequence
2 MySQL、SQL Server使用identity
数据库中的语法如下:
MySQL:create table t_user(id int auto_increment primary key, name varchar(20));
SQL Server:create table t_user(id int identity(1,1) primary key, name varchar(20));
<id name="id" column="id" type="long">
<generator class="identity" />
</id>
3 native
会根据底层数据库的能力,从identity、sequence、hilo中选择一个,灵活性更强,但此时,如果选择sequence或者hilo,则所有的表的主键都会从Hibernate默认的sequence或者hilo表中取。并且,有的数据库对于默认情况主键生成测试的支持,效率并不是很高
对于 oracle 采用 Sequence 方式,对于MySQL 和 SQL Server 采用identity(自增主键生成机制),native就是将主键的生成工作交由数据库完成,hibernate不管(很常用)
<id name="id" column="id">
<generator class="native" />
</id>
发表评论
-
关于Map常用的方法
2014-02-25 09:25 7611 将Map转换成List // key list List ... -
Effictive Java 读书笔记
2013-10-11 13:51 746Effictive Java 1 考虑用静 ... -
eclipseSSH整合
2013-02-25 16:16 6451 Exception loading sessions fr ... -
简单java ibatis
2012-12-24 13:50 0ibatis小巧,易上手,适合于小型项目开发。 其中对于引用的 ... -
自己做的Ajax小练习
2012-11-13 08:42 6451 关于Ajax三个方法的固定写法 <scri ... -
自己做的web练习
2012-11-12 19:54 590参见附件:service 与client -
struts2小知识点
2012-11-01 10:19 6611 默认的命名空间“ namespace="&qu ... -
2012-10-11 Hibernate杂碎
2012-10-11 18:35 5681 从Hibernate的参考手册中,我们基本可以总结出这样几 ... -
Hibernate BaseDao
2012-10-09 17:16 0package net.comtops.dao.impl; ... -
Hibernate 实现增删改
2012-10-09 16:53 685Configuration conf = null; S ... -
JSP一个正确的验证码
2012-09-27 15:13 671image.jsp页面 <%@ page conte ... -
SQL SERVER分页
2012-09-27 09:51 659分页方案一:(利用Not In和SELECT TOP分页) ... -
JDBC数据库连接
2012-09-10 16:11 507MySQL: String Driver="com ... -
oracle分页以及rownum、rowid的使用
2012-09-09 14:13 707分页存储过程: 1.根据ROWID来分,执行时间0.03秒 c ... -
oracle自增序列
2012-09-08 17:52 530创建自增序列 CREATE SEQUENCE SEQn ... -
ObjectOutputStream
2012-08-02 11:05 913要根据用户选择,向一个文件写一个类(Student)的实例,使 ... -
java
2012-07-30 14:45 359- 第一种情况: Comparator cmp = Col ... -
初始化块和构造器
2012-07-24 08:31 5891,构造器的语法格式 修饰符:public private,p ... -
黑马程序员:学习笔记第一天
2012-03-26 21:28 521android培训、java培训、期待与您交流! ------ ...
相关推荐
Hibernate主键生成策略.doc ··········
常用Hibernate主键生成策略 常用Hibernate主键生成策略 常用Hibernate主键生成策略 常用Hibernate主键生成策略
hibernate主键生成策略
hibernate 主键生成策略 说明简单,易懂,全面,
NULL 博文链接:https://alpha2009.iteye.com/blog/1074750
Hibernate主键生成策略.docHibernate主键生成策略.doc
Hibernate中主键生成策略,开发的时候经常会用到的我都整理到这里了~
Hibernate各种主键生成策略详解,包括 assigned increment hilo seqhilo sequence identity native uuid foreign uuid.hex sequence-identity 等
hibernate的主键生成策略介绍,详细介绍了有关hibernate的常用主键生成策略,希望对一些正在学习hibernate的同学有一定的帮助
Hibernate各种主键生成策略与配置详解 1、assigned 主键由外部程序负责生成,在 save() 之前必须指定一个。Hibernate不负责维护主键生成。与Hibernate和底层数据库都无关,可以跨数据库。在存储对象前,必须要使用...
关于Hibernate的各种主键生成策略与配置详解
hibernate 的主键的几种生成类型的区别,主要有那些主键类型
Hibernate 主键生成策略