首页 > 其他分享 >= Request processing failed; nested exception is com.example.exceptio

= Request processing failed; nested exception is com.example.exceptio

时间:2024-02-27 21:00:15浏览次数:22  
标签:exception 唯一性 数据库 processing Request 生成 Hilo 主键 底层

= Request processing failed; nested exception is com.example.exceptio

关于映射文件的问题下次再介绍,这次主要总结hibernate常用主键生成策略。

(1)increment

a)对主键值采取自动顺序增长的方式生成新的主键,值默认从1开始。

b)原理:在当前应用实例中维持一个变量,以保存当前最大值,之后每次需要生成主键值的时候将此值加1作为主键.不依赖于底层的数据库,因此所有的数据库都可以使用

c)缺点:通过increment的生成主键的原理可推断,此种主键生成策略不适用于集群、同一时段大量用户并发访问的系统,既当大量用户同一时间段同时进行插入操作的时候,可能存在取得相同的最大值然后再同时+1的情况,这个时候就会造成主键冲突。因此,如果同一数据库有多个实例访问,此方式必须避免使用。

(2)UUID

a)原理UUID使用128位UUID算法生成主键,能够保证网络环境下的主键唯一性,也就能够保证在不同数据库及不同服务器下主键的唯一性。所以使用于所有数据库。

b)特点;能够保证数据库中的主键唯一性,但是在生成的主键占用比较多的存贮空间

(3)Hilo

a)原理:通过hi/lo 算法(Hilo使用高低位算法生成主键,高低位算法使用一个高位值和一个低位值,然后把算法得到的两个值拼接起来)实现的主键生成机制,需要额外的数据库表保存主键生成历史状态。

b)特点:需要额外的数据库表和字段提供高位值来源。默认情况下使用的表是   hibernate_unique_key,默认字段叫作next_hi。next_hi必须有一条记录否则会出现错误。需要额外的数据库表的支持,能保证同一个数据库中主键的唯一性,但不能保证多个数据库之间主键的唯一性。Hilo主键生成方式由Hibernate 维护,所以Hilo方式与底层数据库无关。

(4)sequence

a)sequence实际是就是一张单行单列的表。

b)实现原理:调用数据库中底层存在的sequence生成主键,需要底层数据库的支持序列,因此他是依赖于数据库的。

c)支持sequence的数据库有:Oracle 、DB2(MySQL/SQlServer不支持)、PostgreSql、SAPDb等

(5)identity

a)根据底层数据库,来支持自动增长,不同的数据库用不同的主键增长方式。

b)特点: 与底层数据库有关,要求数据库支持Identity,如
————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/llllll_iinn/article/details/123406560

标签:exception,唯一性,数据库,processing,Request,生成,Hilo,主键,底层
From: https://www.cnblogs.com/stdxxd/p/18038232

相关文章

  • npm报错:request to https://registry.npm.taobao.org failed, reason certificate has
    一、报错问题:提示淘宝镜像过期二、错误提示已经告诉原因是淘宝镜像过期了!其实,早在2021年,淘宝就发文称,npm淘宝镜像已经从registry.npm.taobao.org切换到了registry.npmmirror.com。旧域名也将于2022年5月31日停止服务(不过,直到今天HTTPS证书到期才真正不能用了)三......
  • npm ERR! request to https://registry.npm.taobao.org/vue-router failed, reason: c
    npminstall报错了!看提示是证书到期,究其原因是淘宝镜像的地址换了。旧:https://registry.npm.taobao.org/新:https://registry.npmmirror.com/#清除缓存npmcacheclean--force#验证缓存是否清除干净npmverifycache#更改淘宝镜像npmconfigsetregistryhttps://r......
  • Jenkins 远程触发 403 No valid crumb was included in the request
    Jenkins使用curl执行远程触发命令,会报403错误打开如下图  系统管理-》scriptConsole在下面脚本命令行中输入hudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION=true  查看-》系统管理-》全局安全配置 最后,请求成功 翻译搜......
  • Exception in thread "xxl-job, admin JobRegistryMonitorHelper-registryOrRemoveThr
    这个问题集合遍历修改了集合结构,这样是不被允许的,需要换种方式报错示意图 第一可以采用for(inti=0;i<registryList.size();i++)解决第二采用迭代处理Iterator<XxlJobRegistry>iterator=registryList.iterator();while(iterator.hasNext()){XxlJobRegist......
  • SpringBoot:通过实现自定义接口获取实现类的@RequestMapping注解请求路径
    1.自定义接口//什么都不用写,就定义一个空接口publicinterfaceMyMark{}2.Controller接口类实现自定义接口@RestControllerpublicclassDayControllerimplementsMyMark{@RequestMapping("/day1")publicStringget1(){return"day1";}......
  • conda报错、anconda报错:requests.exceptions.JSONDecodeError: Expecting value: line
    anconda报错,报错信息:requests.exceptions.JSONDecodeError:Expectingvalue:line1column1(char0)不能使用conda新建环境和安装library库,网上搜索相关问题后发现是之前配置的第三方源地址出现了问题。解决方法:shell中输入命令:condaconfig--remove-keychannels......
  • 请求接口时报错nginx 413 Request Entity Too Large
    1.在rancher容器中执行命令行$cd/etc/nginx$catnginx.conf2.vi或vim修改配置文件bash:vim:commandnotfound更新软件包列表$sudoapt-getupdate更新软件包$sudoapt-getupgrade安装vim$sudoapt-getinstallvim3.vim修改conf配置文件http新增client_m......
  • 异步线程处理request,导致参数获取为null
    原文链接:千万不要把Request传递到异步线程里面!有坑!一、post接口接口参数: 后端代码:@PostMapping("/postTest")publicStringpostTest(HttpServletRequestrequest,HttpServletResponseresponse){//AsyncContextasyncContext=request.startAsync(request,re......
  • java.sql.SQLException: Connection is read-only. Queries leading to data modifica
    java.sql.SQLException:Connectionisread-only.Queriesleadingtodatamodificationarenot产生的原因:事务中查询的方法中,嵌套了新增或修改的方法,会报该异常。解决方法:找到报错的方法,在该方法上加上注解,@Transactional(readOnly=false)业务上加了事务控制,意思是只能查......
  • C# 采用HttpWebRequest 、WebClient和HttpClient下载https的文件异常问题
    今天有个客户反应,程序下载文件失败,无法正常使用。远程客户电脑后,查看错误日志,都是提示https:****************************.dll等一系列文件的下载错误提示提示基础连接已经关闭:发送时发生错误。在网上找了很多方案都没有能解决,大多都是https链接时增加指定协议,很遗憾未能解......