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值一样。

  • 相关阅读:
    zookeeper 分布式锁
    kafka比较好的文章
    HTTP深入浅出 http请求
    火狐浏览器下event对象的兼容处理
    透明度轮播框架封装注意点zIndex值不能忘记
    wamp的phpmyadmin无法访问Forbidden的解决方案
    同一DIV内,两个行内块元素不对齐的解决方案
    tween.js运动曲线
    什么是闭包?闭包的优缺点?
    firefox和IE9不支持对icon font字体的跨域访问
  • 原文地址:https://www.cnblogs.com/qisong178878915/p/4272421.html
Copyright © 2011-2022 走看看