当前位置: 首页 > news >正文

Hibernate主键生成策略及选择

1 .increment:适用于short,int,long作为主键,不是使用数据库自动增长机制

这是hibernate中提供的一种增长机制

           在程序运行时,先进行查询:select max(id) from user;

                                       再进行插入:或得最大值+1作为新的记录的主键

问题:不能在集群环境下或者有并发访问的情况下使用

2 .identity 适用于short,int,long作为主键,但是这个必须使用在有自动增长机制的数据库中,采用的是数据库底层的自动增长机制

底沉使用的是数据库的自动增长(auto_increment),像oracle数据库没有自动增长

3.sequence 适用于short,int,long作为主键,底层使用的是序列的增长方式

  • oracle 数据库底层没有自动增长,想自动增长需要使用序列

4.native本地策略,根据底层数据库不同,自动选择适用于该数据库的生成策略(short int long)

如果底层使用的是mysql没数据库相当于 identity

如果使用的oracle数据库,相当于sequence

5.uuid,适用于char,varchar类型作为主键.

使用随机的字符串作为主键

6.assigned 主键自己维护,不使用hibernate维护

总结:使用时,如果主键是short,int long类型,采用native主键生成策略,如果是字符串,使用uuid主键生成策略

 

相关文章:

  • Java集合系列:-----------05LinkedList的底层实现
  • nginx+tomcat单个域名及多个域名配置
  • PV统计优化设计
  • 非常好!讲逻辑回归的,讲得很透彻
  • Redis 分布式锁的正确实现方式
  • 协议适配器错误的问题
  • 2017-2018-1 20155229 《信息安全系统设计基础》第十一周学习总结
  • ORACLE常用数值函数、转换函数、字符串函数
  • MYSQL分表与分区
  • spring security oauth2 authorization code模式
  • 刷新页面清空 input text的值
  • 服务器数据库不用开通远程连接通过工具在本地连接操作的方法
  • 温故·我的笔记
  • 【转】NGUI版虚拟摇杆
  • 探索 DWARF 调试格式信息
  • 【108天】Java——《Head First Java》笔记(第1-4章)
  • co模块的前端实现
  • ES6语法详解(一)
  • flask接收请求并推入栈
  • iOS筛选菜单、分段选择器、导航栏、悬浮窗、转场动画、启动视频等源码
  • JAVA SE 6 GC调优笔记
  • JavaScript 一些 DOM 的知识点
  • Javascript设计模式学习之Observer(观察者)模式
  • js数组之filter
  • nginx 负载服务器优化
  • Python - 闭包Closure
  • Redis中的lru算法实现
  • SpringCloud(第 039 篇)链接Mysql数据库,通过JpaRepository编写数据库访问
  • 前端面试之CSS3新特性
  • 我的业余项目总结
  • 消息队列系列二(IOT中消息队列的应用)
  • 小程序测试方案初探
  • 正则与JS中的正则
  • media数据库操作,可以进行增删改查,实现回收站,隐私照片功能 SharedPreferences存储地址:
  • 从如何停掉 Promise 链说起
  • ​直流电和交流电有什么区别为什么这个时候又要变成直流电呢?交流转换到直流(整流器)直流变交流(逆变器)​
  • #1014 : Trie树
  • #14vue3生成表单并跳转到外部地址的方式
  • #FPGA(基础知识)
  • (09)Hive——CTE 公共表达式
  • (C++20) consteval立即函数
  • (Note)C++中的继承方式
  • (Redis使用系列) Springboot 使用Redis+Session实现Session共享 ,简单的单点登录 五
  • (非本人原创)我们工作到底是为了什么?​——HP大中华区总裁孙振耀退休感言(r4笔记第60天)...
  • (附源码)php新闻发布平台 毕业设计 141646
  • (附源码)计算机毕业设计大学生兼职系统
  • (机器学习-深度学习快速入门)第三章机器学习-第二节:机器学习模型之线性回归
  • (全注解开发)学习Spring-MVC的第三天
  • (深度全面解析)ChatGPT的重大更新给创业者带来了哪些红利机会
  • (心得)获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
  • ./和../以及/和~之间的区别
  • .NET 5种线程安全集合
  • .NET Compact Framework 3.5 支持 WCF 的子集
  • .NET国产化改造探索(一)、VMware安装银河麒麟
  • .Net环境下的缓存技术介绍