hibernate中一个数据模型的主键常用有三种形式:uuid、native、assigned,分别是通用唯一标识、自增、自定义。
1、uuid是系统产生的,insert数据库时相比native要快很多,但是uuid是一长串无序字符串,理论上讲查找起来会慢一点,但是不太会影响开发的。而native是数据库生成,在insert时会先计算所以会比uuid慢一点,但是在查找和删除数据时,会比较方便。
2、uuid和assigned的生成是在程序中完成的,一个是自动,一个是手动。所以在进行session.save()时,不会产生sql语句,数据库中也不会有数据。而native需要读取数据库数据才能完成自动递增,所以在执行session.save()时,就会产生相应的sql语句,数据库中就会有数据。
uuid介绍:
uuid即通用唯一标识,听这个名字就很霸气,没错。在不知道怎么定义主键时,它是不二的选择。
1、生成简单,java中已经有现成的东西(java就是好啊),引入java.util.UUID,例:
UUID uu = UUID.randomUUID();System.out.println(uu);//会打印出什么天知道。
2、通用唯一,其实可以加上全球,uuid的生成原理:
当前日期和时间(UUID的第一个部分与时间有关,如果你在生成一个UUID之后,过几秒又生成一个UUID,则第一个部分不同,其余相同),时钟序列,全局唯一的IEEE机器识别号(如果有网卡,从网卡获得,没有网卡以其他方式获得),
据说uuid用上千年万年才会出现一条重复数据,这意味着在任何时候两个相同数据表的数据放在一起不会出现主键冲突,这在实际开发中会带来很大的好处。

hibernate中uuid和native等主键生成策略相关推荐

  1. Hibernate 之主键生成策略

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

  2. Hibernate中主键生成策略

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

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

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

  4. hibernate 7大主键生成策略详解与对象状态

    一:代理主键_主键自增 1.identity 1.采用底层数据库本身提供的主键生成标识符,条件是数据库支持自动增长数据类型 2.该生成器要求在数据库中把主键定义成为自增长类型.适用于代理主键 2.in ...

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

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

  6. hibernate之主键生成策略

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

  7. 基于按annotation的hibernate主键生成策略

    这里讨论代理主键,业务主键(比如说复合键等)这里不讨论. 一.JPA通用策略生成器 通过annotation来映射hibernate实体的,基于annotation的hibernate主键标识为@Id ...

  8. Hibernate标识符属性(主键)生成策略全析

    数据库中的主键能够唯一识别一条记录,它可以是一个字段也可以是多个字段的组合.主键的主要作用是标识表中的一条记录,还有和其他表中的数据进行关联.数据库中的主键类型必须符合唯一性约束和非空约束.作为附加属 ...

  9. hibernate框架学习第二天:核心API、工具类、事务、查询、方言、主键生成策略等...

    核心API Configuration 描述的是一个封装所有配置信息的对象 1.加载hibernate.properties(非主流,早期) Configuration conf = new Conf ...

  10. Hibernate持久化类与主键生成策略

    Hibernate持久化类 什么是持久化类? Persistent Object (PO) PO=POJO+hbm映射配置 对于hibernate中的PO编写规则: 1. 必须提供一个无参数的publ ...

最新文章

  1. MyBatis 和 Spring 中的 23 种设计模式,真香,拿去用吧!
  2. centos7下安装mariadb
  3. 新西兰激光事故5年增加130% 官员警告危害航空安全
  4. 基于Swoole开发PHP扩展
  5. H5 C3中的概念(一)
  6. CubeMX 的使用实例详细(04.6)- STM32F103的 - 定时器设定 - callback调用 - 实现1S的定时更新LED灯
  7. C# 创建、部署和调用WebService的简单示例
  8. 小型 web 服务器系统,小型WEB服务器 - 应用服务器是什么_应用服务器有哪些
  9. BAT54C 二极管是如何工作的?
  10. “长按地址在浏览器中打开”的解决办法
  11. linux怎么使用西部数据,「轉」Linux下西部数据C1门解决方法
  12. MSET key value [key value ...]
  13. 3000字《软件测试》从入门到精通全套学习路线整理,零基础入门
  14. 腾讯云TVP——隐于市,惠于民
  15. 电脑出现无法访问您试图使用的功能所在的网络位置怎么办?(清除软件卸载残留)
  16. php 国际标准时间_时区-如何在PHP中获得格林威治标准时间?
  17. 【学习摘记】马士兵HTML CSS_课时4-5_表格和表单
  18. Spring MVC 双亲上下文的说明
  19. 对12306车票数据的提取
  20. 微信小程序weui的引入及使用

热门文章

  1. 再立阶段目标 09.10.26
  2. hdfs-文件上传下载
  3. 【爬坑日记】vue中传props时默认为Boolean问题
  4. 如何向普通人解释机器学习、数据挖掘
  5. Qt汉字显示乱码的一个简单解决方案
  6. 注册、注销与结束session变量
  7. 8.企业安全建设指南(金融行业安全架构与技术实践) --- 安全考核
  8. 9.Memcached 介绍
  9. 4.nslookup
  10. 36. In Depth Magento System Configuration