Hibernate主键生成器详解

在类的映射文件*.hbm.xml中有下面一段代码

<generator class="increment"></generator>

主要的有assigned identity increment uuid sequence
increment
第一:Increment
控制台显示的信息:
Hibernate:select max(pid) from Person
Hibernate:insert into Person (pname,psex,pid)values(?,?,?)
1,主键的类型必须是数字类型。
2,主键的生成是由Hibernate内部完成的,程序员不需要干预。
3,生成机制效率比较低。
第二:Identity
控制台显示信息
(首先表要支持自动增长机制)
Hibernate:insert int Person(pname,psex)values(?,?)
1,新的主键的产生是由数据库完成的,并不是由Hibernate或者程序员完成的。
2,该表必须支持自动增长机制。
3,效率比较高,唯一的缺点是表内不连贯。
第三:Assigned(企业开发一般用不着)
由程序设置主键
因为主键的生成机制为assigned,所以必须在程序中手动设置其ID值。
第四:Uuid
控制台信息
Hibernate:insert into Person(pname,psex,pid)value(?,?,?)
1,Uuid是由hibernate内部生成的
2,主键类型必须是字符串
以上在实际开发中是最长用到的,切记:hibernate内部是根据主键生成器来生成主键的,在客户端不一定起作用,在assigned的时候起作用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值