hibernate 主键生成

来源:互联网 发布:mysql 引号转义 编辑:程序博客网 时间:2024/06/03 14:22
 在<id>主键映射时,可以利用<generator class="主键生成方式">指定主键的生成。当进行添加save()操作时,hibernate会根据指定生成方式生成一个id值,一般不需要程序员参与。
    Hibernate预定义的生成方式如下:
    *a. identity
       通知hibernate框架,主键值采用数据库自动增长机制生成。常用于MySQL,SQLServer。
    *b. sequence
       通知hibernate框架,主键值采用指定序列生成,然后insert数据库。主要适用于Oracle,使用格式
       <generator class="sequence">
<param name="sequence">foo_seq</param>
       </generator>
   *c. native
       通知hibernate框架,根据dialect方言不同,自动选择identity和sequence方式。如果方言是MySQL选择identity,如果方言是Oralce选择sequence.
   *d. increment
       通知hibernate框架,先执行select max(id) from table,然后加1在执行insert操作。只用于各种数据库。
   (了解)e. assinged
        通知hibernate框架,忽略主键生成。需要程序员在代码中设置id值。setId(指定值).
  (了解)f. uuid,hilo等
      hibernate会根据uuid算法生成一个主键值,该值为字符串类型。
      hibernate会根据hilo算法生成一个主键值,该值为数值类型。
  (了解) g.如果以上生成方式不能满足,可以自定义。
       首先定义一个类,该类要实现IdentifierGenerator接口,在generator方法定义自己的主键规则。
       然后在<generator class="包名.类名"></generator>
0 0
原创粉丝点击