zoukankan      html  css  js  c++  java
  • 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:表明直接使用另一个关联对象的标识属性值(即本持久化对象不能生成主键)。









  • 相关阅读:
    Watir and Selenium
    WebDriver 原理 (zhuan)
    Junit4 如何实现并发测试用例,及 Selenium Grid2 与 Junit4 结合进行并发测试。
    Excel: 如何知道 A列中的条目是否在 B 列中
    WebDriver如何工作 (zhuan)
    复习 多线程
    Way To Get Xpath From IE (forward)
    Eclipse 常用快捷键
    如何引入(调用)一个 js文件
    Wireshark 常见 filter (转)
  • 原文地址:https://www.cnblogs.com/liaojie970/p/5064069.html
Copyright © 2011-2022 走看看