hibernate主键增长策略

 1.increment

    适合所有数据库,不要用在多进程,主键类型是整数

    select max(id) from student

2.identity

   支持DB2、mysql、sql server 、Sybase 主键类型是整数  但不适用oracle

3.sequence

  适用于DB2、Oracle等   主键类型也是整数类型

4.native

   会根据数据库的类型来选择是用identity、sequence、还是hilo   主键类型也是数值型    select hibernate_sequence.nextval from dual  所以它会重新创建一个序列

5.hilo  (高低位算法)

  自动创建表 

<id name="id" type="java.lang.Integer">
   <generator class="native "/>  

    <para name="table">表名</para>

   <para name="column">字段名</para>

</id>

6.uuid

   只能适用于字符串,不能是数值型,否则会报错  会根绝uuid算法产生128-bit 的字串

7.assigned

   是用户自己设置主键    所以主键属性类型可以是任意类型

8.复合主键

   把设置的主键的字段组合成一个类    (尽量不要用,数据不稳定,效率比较低)

9.foreign

   在one-to-one的使用



数值类型:

      Oracle :sequence

      Mysql:increment

      Sql Server:identity


    native都使用哈...

字串使用UUID 或者assigned


one-to-one时,使用foreign


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值