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

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

  • 相关阅读:
    DOCTYPE
    js——类型转换
    对象Object
    Array数组
    es6学习笔记
    springboot第一个项目【mybatis】
    springboot第一个项目【创建】
    项目管理和流程的拙见
    树莓派 Zero作为飞控图传
    一根数据线玩转树莓派Zero
  • 原文地址:https://www.cnblogs.com/zyh1994/p/5399559.html
Copyright © 2020-2023  润新知