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:外来主键

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

  • 相关阅读:
    冲刺阶段(三)
    冲刺阶段(二)
    第十一周学习进度
    冲刺阶段(一)
    第十一周学习进度条
    第一阶段——站立会议总结DAY04
    第一阶段——站立会议总结DAY03
    第一阶段——站立会议总结DAY02
    第一阶段——站立会议总结DAY01
    第十周学习进度条
  • 原文地址:https://www.cnblogs.com/zyh1994/p/5399559.html
Copyright © 2011-2022 走看看