1、如果主键字段为自增类型,
那么对应的.hbm.xml文件中的id字段的xml声明,
应该这么写:
<generator class="native" />
例如:
<id
column="user_id"
name="Id"
type="integer"
>
<generator class="native" />
</id>
其实这个native并非实际的类型,而是hiberante根据
当前使用的数据库,自动使用对应的类型。
例如:如果sqlserver,native就对应identity
见Hiberante参考:
native(本地)
根据底层数据库的能力选择identity, sequence 或者hilo中的一个。
2、如果主键字段不设置为自增,但是是int型的,
可以使用increment,由hibernate产生主键。
<generator class="increment" />

不过这种方法,对于并发量大的应用,似乎最好不要采用。
见hiberante参考:
increment(递增)
用于为long, short或者int类型生成唯一标识。只有在没有其他进程往同一张表中插入数据时才能使用。
在集群下不要使用。
3、如果使用uuid.hex产生的随机32位数最为主键,
那么数据库的id字段类型为char,长度为32
hbm.xml中写为: <generator class="uuid.hex" />
另外,uuid.string也是功能类似。
uuid.hex产生的是32位的16进制数字的字符串。
而uuid.string产生的是16个字符长的任意ASCII字符组成的字符串
见参考:
uuid.hex
用一个128-bit的UUID算法生成字符串类型的标识符。在一个网络中唯一(使用了IP地址)。UUID被编
码为一个32位16进制数字的字符串。
uuid.string
使用同样的UUID算法。UUID被编码为一个16个字符长的任意ASCII字符组成的字符串。不能使用在PostgreSQL数据库中

转载于:https://www.cnblogs.com/pursue/archive/2009/09/21/1570723.html

Hibernate的主键生成器generator(zhuan)相关推荐

  1. Hibernate各种主键生成策略与配置详解 - 真的很详细啊!!

    1.assigned 主键由外部程序负责生成,在 save() 之前必须指定一个.Hibernate不负责维护主键生成.与Hibernate和底层数据库都无关,可以跨数据库.在存储对象前,必须要使用主 ...

  2. hibernate之主键生成策略

    一.主键类型 1.自然主键(主键本身就是表中的一个字段,实体中一个具体的属性) 表中已经具有某字段,并且该字段具有业务含义作为主键,称之为自然主键. 例如:在person表中的身份证号,既是唯一的,又 ...

  3. Hibernate各种主键生成策略与配置详解

    为什么80%的码农都做不了架构师?>>>    1.assigned 主键由外部程序负责生成,在 save() 之前必须指定一个.Hibernate不负责维护主键生成.与Hibern ...

  4. hibernate 各种主键生成策略(转)

    http://www.cnblogs.com/kakafra/archive/2012/09/16/2687569.html 1.assigned 主键由外部程序负责生成,在 save() 之前必须指 ...

  5. hibernate中主键的生成策略

    1.assigned 主键由外部程序负责生成,在 save() 之前必须指定一个.Hibernate不负责维护主键生成.与Hibernate和底层数据库都无关,可以跨数据库.在存储对象前,必须要使用主 ...

  6. Hibernate 之主键生成策略

    目录 前言 示例 准备 数据库建表 实体类定义和对应的xml配置 DemoDao 程序员自己控制:assigned 数据库控制 identity(标识列/自动增长) sequence:内部序列 Hib ...

  7. hibernate一对一主键关联映射(一)---单向关联

    1.新建工程项目hibernate_one2one_pk_1,添加hibernate所需Jar包和mysql驱动Jar包. 2.建立工具类HihernateUtils.java和ExportDB.ja ...

  8. Hibernate中主键生成策略

    主键生成策略 increment identity sequence native uuid assigned 1) increment 由hibernate完成 主键递增, 原理:select ma ...

  9. hibernate native oracle,hibernate native 主键生成策略

    前一次做个系统用的oracle数据库,使用hibernate生成主键的策略是SEQUENCE,当时觉得很累,因为不知道怎么的,oracle+sequence+trigger怎么也取不到新增数据时的主键 ...

最新文章

  1. LeetCode 829. Consecutive Numbers Sum--笔试题--C++解法
  2. .Net业务搭配实用技术栈
  3. 博客园 页面定制CSS代码
  4. 虚拟内存越大越好吗_二次构造柱泵的功率越大越好吗—自然不是
  5. 玩Java 8 – Lambda,路径和文件
  6. Node.js 14 发布,改进了诊断功能
  7. x99 芯片服务器,X99果然是支持PCI-E拆分的啊
  8. 【其他专题】好用的截图(包括动图gif)软件分享
  9. co作为前缀的意思_注定孤独的前缀|英汉比较教学法·语音思维No.17
  10. Centos 6 版本下载
  11. unity android录制视频教程,Unity3d 录屏功能教程指南 | Cross Platform Replay Kit
  12. Linux C++编译及 静态/动态 链接库 笔记
  13. linux向日葵无法启动, 提示错误 connect is error
  14. [人生感悟]写在毕业前
  15. ubuntu 从刷机到yolov5环境搭建训练记录
  16. web实验报告——JSP动态网页编程
  17. 08简单推导:手机尾号评分
  18. 递归遍历与for循环遍历:递归遍历实现、理解简单
  19. MATLAB机器人工具箱(四)动力学
  20. 启动光盘制作完全手册下载

热门文章

  1. SRIO学习(一)——外设数据流
  2. Flask搭建二进制音频传送接口
  3. vue实战之前期准备
  4. Ajax方式上传文件报错Uncaught TypeError: Illegal invocation
  5. 把整数转换成2的n次方的和数组
  6. VS下对Resx资源文件的操作
  7. ArcGIS Engine效率探究——要素的添加和删除、属性的读取和更新(转载)
  8. Less 常用基础知识
  9. redmine 2.2.x 修改文档附件的存放目录
  10. Windows Server 2012R2 DHCP故障转移(3)