zoukankan      html  css  js  c++  java
  • Hibernate3中generator标签使用

    在XXX.hbm.xml映射配置文件中定义<generator class="native"/>标签是为了告诉Hibernate框架使用什么方式去生成主键
    class对应的选项:

    1.increment:自动增长(short、int...)

      * 是指Hibernate框架控制的自动增长,Hibernate框架首先会使用select * from语句查找数据库中最高的主键值,然后在该主键值的基础上再+1。

      缺点:会造成线程安全问题

    2.identity:自动增长(short、int...)
      * 他是数据库控制的自动增长,相当于在创建表示为表的列增加auto_increment

      缺点:不能用于oracle,因为oracle中没有auto_increment,oracle中用的是序列

    3.sequence:序列(short、int...)
      * 可以实现自动增长,但是他只能用于支持序列的数据库,比如oracle

    4.uuid:随机字符串(string)

      * 他会为主键去生成随机字符串,相应的在创建Hibernate持久化类时要这样写 private String id;

    5.native:本地策略

      * Hibernate框架会根据本地的数据库自动的选择是用identity或者sequence,

      * 换句话说如果你本地使用的oracle,Hibernate会自动选择使用sequence,如果本地使用mysql他会自动选择indentity

    6.assigned:手动

      * Hibernate不会去维护主键,在往数据库中插入数据时,程序员要自己手动添加一个主键。

    7.foreign:外来主键

      * 主键是外来的,比如拿另一个表的主键来当现表的主键(多表一对一关系)

  • 相关阅读:
    springmvc
    POJ 3683 Priest John's Busiest Day
    POJ 3678 Katu Puzzle
    HDU 1815 Building roads
    CDOJ UESTC 1220 The Battle of Guandu
    HDU 3715 Go Deeper
    HDU 3622 Bomb Game
    POJ 3207 Ikki's Story IV
    POJ 3648 Wedding
    HDU 1814 Peaceful Commission
  • 原文地址:https://www.cnblogs.com/zyh1994/p/5399559.html
Copyright © 2011-2022 走看看