zoukankan      html  css  js  c++  java
  • Hibernate的generator属性之意义

    Hibernate的Generator属性有7种class,本文简略描述了这7种class的意义和用法。

    1、identity:用于MySql数据库。特点:递增 

    1. id name="id" column="id">   
    2.     generator class="identity"/>   
    3. < /id

    注:对于MySql数据库使用递增序列时需要在建表时对主键指定为auto_increment属性。

    2、sequence:用于Oracle数据库 

    1. < id name="id" column="id">   
    2.    < generator class="sequence">   
    3.      < param name="sequence">序列名< /param>   
    4.    < /generator>   
    5. < /id> 

    3、native:跨数据库时使用,由底层方言产生。 
    Default.sequence为hibernate_sequence

    1. < id name="id" column="id">   
    2.    < generator class="native"/>   
    3. < /id>   

    注:使用native时Hibernate默认会去查找Oracle中的hibernate_sequence序列。 
    如果Oracle中没有该序列,连Oracle数据库时会报错。

    4、hilo:通过高低位合成id,先建表hi_value,再建列next_value。必须要有初始值。

    1. < id name="id" column="id">   
    2.     < generator class="hilo">   
    3.       < param name="table">high_val< /param>   
    4.        < param name="column">nextval< /param>   
    5.       < param name="max_lo">5< /param>   
    6.     < /generator>   
    7. < /id>  

    5、sequencehilo:同过高低位合成id,建一个sequence序列,不用建表。 

    1. < id name="id" column="id">   
    2. < generator class="hilo">   
    3. < param name="sequence">high_val_seq< /param>   
    4. < param name="max_lo">5< /param>   
    5. < /generator>   
    6. < /id> 

    6、assigned:用户自定义id; 

    1. < id name="id" column="id">   
    2. < generator class="assigned"/>   
    3. < /id> 

    7、foreign:用于一对一关系共享主健时,两id值一样。

  • 相关阅读:
    设置共享文件夹大小
    About IConfigurationSectionHandler Interface
    zoj 1050
    SQL Server 数据库优化经验总结
    一、页面输出缓存
    [转]深入解读 ADO.NET 2.0 的十大最新特性
    ASP.NET 缓存学习
    [转]写给ASP.NET程序员:网站中的安全问题
    [转] ASP.NET 性能提升秘诀之管道与进程优化
    实战 SQL Server 2005 镜像配置
  • 原文地址:https://www.cnblogs.com/xtdxs/p/7114924.html
Copyright © 2011-2022 走看看