hibernate主键增长策略

来源:互联网 发布:ttl数据查看 编辑:程序博客网 时间:2024/06/10 03:11

 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


原创粉丝点击