• Hibernate主键生成器


    主键生成器负责生成数据表记录的主键:
    increment:为long,short或者int类型主键生成唯一标识。只有在没有其他进程往同一张表中插入数据时才能使用。在集群下不能使用!


    identity:在DB2,MySQL,Microsoft SQL Server,Sybase和HypersonicSQL等提供identity(自增长)主键支持的数据表中适用。返回的标识属性是long,short或int类型的


    sequence:在DB2,PostgreSQL,Oracle,SAP DB,McKoi等提供sequence支持的数据表中适用。返回的标识属性值是long,short或int类型。


    hilo:使用一个高/低位算法高效的生成long,short或int类型的标识符。给定一个表和字段(默认分别是hibernate_unique_key和next_int)作为高位值的来源。高/低位算法生成的标识属性只在一个特定的数据库中是唯一的。


    seqhilo:使用一个高/低位算法来高效的生成long,short或int类型的标识符,需要给定一个数据库sequence名。该算法和hilo稍有不同,它将主键历史状态保存在Sequence中,适用于支持Sequence的数据库,如Oracle。


    uuid:用一个128位的UUID算法生成字符串类型的标识符,这在一个网路中是唯一的(IP地址也作为算法的数据源)。UUID被编码为一个32位十六进制数的字符串。

    <id name="id" column="id" type="string" length="32">
         <generator class="uuid.hex" />
    </id>

    guid:在Microsoft SQL Server和MySQL中使用数据库生成GUID字符串。


    native:根据底层数据库的能力选择identify,sequence或hilo中的一个。

     <id name="id" column="id" type="long">
          <generator class="native" />
     </id>

    assigned:让应用程序在save()之前为对象分配一个标识符。这相当于不指定<generator../>元素默认时采用的默认策略。

    <id name="id" type="java.lang.String" column="id" length="32" >           
          <generator class="assigned" />
    </id>

    select:通过数据库触发器选择某个唯一主键的行,并返回其主键值作为标识属性值。


    foreign:表明直接使用另一个关联对象的标识属性值(即本持久化对象不能生成主键)。









  • 相关阅读:
    C#中的String.Format()方法
    JQuery中的each方法
    [开发笔记]-使用jquery获取url及url参数的方法
    ThinkPHP3.2.3学习笔记3---视图
    PHP命名空间namespace使用小结
    ThinkPHP3.2.3学习笔记2---模型
    PHP中的连贯操作
    关于新技术的学习问题
    ThinkPHP3.2.3学习笔记1---控制器
    WinXP下如何安装及御载MySQL服务
  • 原文地址:https://www.cnblogs.com/liaojie970/p/5064069.html
Copyright © 2020-2023  润新知