当前位置 : 主页 > 编程语言 > c++ >

Hibernate 框架中主键生成策略generator

来源:互联网 收集:自由互联 发布时间:2021-07-03
Hibernate提供的内置标识符生成器 1.increment:Hibernate以递增的方式为代理主键赋值。就是先读取表中主键的最大值,接下来向表中执行插入操作时,主键id就会在max(id)的基础上递增,所以有
Hibernate提供的内置标识符生成器
1.increment:Hibernate以递增的方式为代理主键赋值。就是先读取表中主键的最大值,接下来向表中执行插入操作时,
主键id就会在max(id)的基础上递增,所以有可能会有线程安全问题;
2.identity:由底层数据库来负责生成标识符,它要求底层数据库把主键定义为自增长字段类型,所以底层数据库一定
要支持自增长字段类型,如DB2,Mysql...还有Oracle不支持
3.sequence:利用底层数据库提供的序列来生成标识符,Hibernate在new一个对象时,先从底层数据库的news_seq序列
中获得一个唯一的标识号,再把它作为对象的主键值。支持序列的底层数据库有DB2,Oracle...
4.hilo:由Hibernate按照一种high/low算法来生成标识符,Hibernate在持久化一个对象时,由Hibernate负责生成一
个主键值,hilo标识符生成器在生成标识符时,需要读取并修改HI_TABLE表中的NEXT_VALUE值,它不依赖任何底层数
据库,所以hilo支持所有底层数据库
5.native:该标识符生成器依据底层数据库对标识符生成器的支持能力,自动选择合适的标识符生成器,(identity,
sequence,hilo)适合跨数据库平台开发。
网友评论