zoukankan      html  css  js  c++  java
  • Hibernate生成器类

    在Hibernate中,id元素的<generator>子元素用于生成持久化类的对象的唯一标识符。 Hibernate框架中定义了许多生成器类。

    所有的生成器类都实现了org.hibernate.id.IdentifierGenerator接口。 应用程序员可以通过实现IdentifierGenerator接口来创建自己的生成器类。 Hibernate框架提供了许多内置的生成器类:

    1. assigned
    2. increment
    3. sequence
    4. hilo
    5. native
    6. identity
    7. seqhilo
    8. uuid
    9. guid
    10. select
    11. foreign
    12. sequence-identity

    1. assigned

    如果没有使用<generator>元素,assigned是默认的生成器策略。在这种情况下,应用程序为对象分配ID。 例如:

    ....  
     <hibernate-mapping>  
      <class ...>  
        <id ...>  
         <generator class="assigned"></generator>  
        </id>  
    
        .....  
    
      </class>  
     </hibernate-mapping>
    
    XML

    2. increment

    当没有其他进程将数据插入此表时,才会生成唯一的ID。 它生成shortintlong型标识符。 第一个生成的标识符通常为1,然后每次递增为1。语法:

    ....  
     <hibernate-mapping>  
      <class ...>  
        <id ...>  
         <generator class="increment"></generator>  
        </id>  
    
        .....  
    
      </class>  
     </hibernate-mapping>
    
    XML

    3. sequence

    它使用数据库的顺序序列。如果没有定义序列,它会自动创建一个序列。 在Oracle数据库的情况下,它将创建一个名为HIBERNATE_SEQUENCE的序列。 在Oracle,DB2,SAP DB,Postgre SQL或McKoi的情况下,它使用序列(sequence),但在interbase中使用生成器。
    语法:

    .....  
     <id ...>  
      <generator class="sequence"></generator>  
     </id>  
     .....
    
    Java

    要定义自己的序列,请使用generator的 param 子元素。

    .....  
     <id ...>  
      <generator class="sequence">  
          <param name="sequence">your_sequence_name</param>  
      </generator>  
     </id>  
     .....
    
    XML

    4. hilo

    它使用高低算法来生成shortintlong类型的id。 语法

    .....  
     <id ...>  
      <generator class="hilo"></generator>  
     </id>  
     .....
    
    Java

    5. native

    它使用标识,序列或希洛取决于数据库供应商。 语法

    .....  
     <id ...>  
      <generator class="native"></generator>  
     </id>  
     .....
    
    Java

    6. identity

    它用于Sybase,Mysql,MS SQL Server,DB2和Hypersonic SQL以支持id列。 返回的ID类型为shortintlong

    7. seqhilo

    它在指定的序列名称上使用高低算法。 返回的ID类型为shortintlong

    8. uuid

    它使用128UUID算法生成id。 返回的IDString类型,在网络中是唯一的(因为使用了IP)。 UUID以十六进制数字表示,长度为32

    9. guid

    它使用由字符串类型的数据库生成的GUID。 它适用于MS SQL Server和MySQL。

    10. select

    它使用数据库触发器返回主键。

    11. foreign

    它使用另一个关联对象的id,主要用于<一对一>关联。

    12. sequence-identity

    它使用特殊的序列生成策略。 仅在Oracle 10g驱动程序中支持。

  • 相关阅读:
    phpmyadmin详细的图文使用教程
    从入门到深入FIDDLER 2
    TestNG学习-001-基础理论知识
    TestNG学习-002-annotaton 注解概述及其执行顺序
    自动化测试如何解决验证码的问题
    自动化测试 -- 通过Cookie跳过登录验证码
    JMeter学习-012-JMeter 配置元件之-HTTP Cookie管理器-实现 Cookie 登录
    自动化测试框架
    并发和并行概念及原理
    匿名内部实现多线程的两种方式创建
  • 原文地址:https://www.cnblogs.com/borter/p/9522193.html
Copyright © 2011-2022 走看看