Hibernate报错,没有权限创建表 HT_xxx

2024-06-08 17:48

本文主要是介绍Hibernate报错,没有权限创建表 HT_xxx,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

某功能在测试环境没问题,发布生产环境后,出现如下错误:
HT_xxx表不存在,无法执行插入操作,跟踪发现,hibernate内部报错,没有创建表HT_xxx的权限。
具体的错误,可参考: http://stackoverflow.com/questions/4412459/hibernate-bulk-update-leads-to-in-query-which-takes-for-ever-to-complete

一样的代码,一样的配置,测试环境没问题,生产环境报错;
由于生成数据库使用的是阿里云的MySQL数据库,猜测可能是由于帐号权限不够导致(阿里云不提供root帐号),

但是,经过测试,发现使用的帐号具有创建表的权限,只好求助阿里团队,


【问】
db_xxx 库,admin帐号操作, java代码通过hibernate执行update语句【update table_a set status = :status where id = :id】。
相同的代码,测试环境ok,生产环境失败;
跟踪代码,发现,hibernate需要额外执行一条语句【insert into HT_table_a select tablea0_.id as id from table_a tablea0_ where tablea0_.id=?】,
说明hibernate需要额外创建临时表,但该操作失败,从而导致更新操作失败。
请问需要设定什么权限吗? 
答:
经查,您的RDS是mysql 5.6版本,对于mysql 5.6是需要在事务以外进行临时表的创建的,如果是5.5可以在事务内进行临时表创建。
您可以确认下这个临时表的操作是否在事务中进行的,如果是事务中执行的这个操作,建议您进行改写,比如是否可以现手动创建这个临时表,然后再执行观察。

至今,不知道该问题的最终原因,只好曲线救国,修改代码,将HQL语句修改为对应的SQL语句。如下:





这篇关于Hibernate报错,没有权限创建表 HT_xxx的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1042880

相关文章

解决升级JDK报错:module java.base does not“opens java.lang.reflect“to unnamed module问题

《解决升级JDK报错:modulejava.basedoesnot“opensjava.lang.reflect“tounnamedmodule问题》SpringBoot启动错误源于Jav... 目录问题描述原因分析解决方案总结问题描述启动sprintboot时报以下错误原因分析编程异js常是由Ja

Spring创建Bean的八种主要方式详解

《Spring创建Bean的八种主要方式详解》Spring(尤其是SpringBoot)提供了多种方式来让容器创建和管理Bean,@Component、@Configuration+@Bean、@En... 目录引言一、Spring 创建 Bean 的 8 种主要方式1. @Component 及其衍生注解

解决Nginx启动报错Job for nginx.service failed because the control process exited with error code问题

《解决Nginx启动报错Jobfornginx.servicefailedbecausethecontrolprocessexitedwitherrorcode问题》Nginx启... 目录一、报错如下二、解决原因三、解决方式总结一、报错如下Job for nginx.service failed bec

MySQL 数据库表操作完全指南:创建、读取、更新与删除实战

《MySQL数据库表操作完全指南:创建、读取、更新与删除实战》本文系统讲解MySQL表的增删查改(CURD)操作,涵盖创建、更新、查询、删除及插入查询结果,也是贯穿各类项目开发全流程的基础数据交互原... 目录mysql系列前言一、Create(创建)并插入数据1.1 单行数据 + 全列插入1.2 多行数据

Java报错:org.springframework.beans.factory.BeanCreationException的五种解决方法

《Java报错:org.springframework.beans.factory.BeanCreationException的五种解决方法》本文解析Spring框架中BeanCreationExce... 目录引言一、问题描述1.1 报错示例假设我们有一个简单的Java类,代表一个用户信息的实体类:然后,

MySQL 临时表创建与使用详细说明

《MySQL临时表创建与使用详细说明》MySQL临时表是存储在内存或磁盘的临时数据表,会话结束时自动销毁,适合存储中间计算结果或临时数据集,其名称以#开头(如#TempTable),本文给大家介绍M... 目录mysql 临时表详细说明1.定义2.核心特性3.创建与使用4.典型应用场景5.生命周期管理6.注

MySQL的触发器全解析(创建、查看触发器)

《MySQL的触发器全解析(创建、查看触发器)》MySQL触发器是与表关联的存储程序,当INSERT/UPDATE/DELETE事件发生时自动执行,用于维护数据一致性、日志记录和校验,优点包括自动执行... 目录触发器的概念:创建触www.chinasem.cn发器:查看触发器:查看当前数据库的所有触发器的定

解决若依微服务框架启动报错的问题

《解决若依微服务框架启动报错的问题》Invalidboundstatement错误通常由MyBatis映射文件未正确加载或Nacos配置未读取导致,需检查XML的namespace与方法ID是否匹配,... 目录ruoyi-system模块报错报错详情nacos文件目录总结ruoyi-systnGLNYpe

创建springBoot模块没有目录结构的解决方案

《创建springBoot模块没有目录结构的解决方案》2023版IntelliJIDEA创建模块时可能出现目录结构识别错误,导致文件显示异常,解决方法为选择模块后点击确认,重新校准项目结构设置,确保源... 目录创建spChina编程ringBoot模块没有目录结构解决方案总结创建springBoot模块没有目录

解决Failed to get nested archive for entry BOOT-INF/lib/xxx.jar问题

《解决FailedtogetnestedarchiveforentryBOOT-INF/lib/xxx.jar问题》解决BOOT-INF/lib/xxx.jar替换异常需确保路径正确:解... 目录Failed to get nested archive for entry BOOT-INF/lib/xxx