Hibernate 配置主键生成策略<generator>中class值得详解

最近学院在教授hibernate框架,学到了主键生成策略

            <id name="">

                <generator class=""></generator>

            </id>

其中generator中class值有很多,这里记录一下常见的几种值得使用方法:

            native: 根据底层数据库的能力选择identity sequence 或者hilo中的一个

            assigned:指定id策略  自己定义  数据类型不定,可以自己定义

            identity: 使用数据库自己的主键生成策略 自动增长

                          仅支持一部分数据库,Oracle

                            返回值为int long     

            sequence: 序列 Oracle等数据库自己的主键生成策略 自动增长
                              支持Oracle DB2 DB 。。。

            hilo:高低位算法来生成主键值 不依赖数据库主键策略

            uuid: 由Hibernate自动生成,使用UUID生成id

            increment:查询当前最大的id值,再进行加一使用

                            由Hibernate维护得自动增长

                           有线程安全问题,不推荐使用



说明一下hilo高低位算法的配置和算法

            配置:
                     <generator class="hilo">
                         <param name="table">hi_value</param>
                         <param name="column">next_value</param>
                         <param name="max_lo">100</param>
                     </generator>

             说明:

                     自动生成一个表hi_value
                     依赖表中的next_value值
                     算法:next_value*max_lo+next_value
                              1
                              101
                              202

                              ......

               
         


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值