Springboot+JPA+ORACLE12C项目使用repository.add()报表或视图不存在
使用repository默认的add()、del(entity)、findById()都会报错,原因是hibernate会自动生成查询语句“select * from "schema_name"."user_table_name”,这里user_table_name总是为小写。众所周知,ORACLE数据库,只要是双引号加schema名称+双引号加小写的用户表名,就会有各种奇妙的问题。我们现在遇到的就是“表或视图不存在”。也不知道是ORACLE项目团队无能,不是傲慢,就是不解决这个问题。我希望他们不是无能,若言中了,我也只能表示太遗憾了,他们太无能了。如果是傲慢,也间接表明他们无能(其实,众所周知,我想激......后面的一个字我就不打出来了)。当然,我相信有别的方法解决此问题的。求解决方法。详细的问题如下--There was an unexpected error (type=Internal Server Error, status=500).
could not execute statement [ORA-00942: 表或视图不存在 ] [insert into "c##zcfx"."t_user" ("password","phone","user_name","user_id") values (,,,)]; SQL [insert into "c##zcfx"."t_user" ("password","phone","user_name","user_id") values (,,,)]
org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute statement [ORA-00942: 表或视图不存在
] [insert into "c##zcfx"."t_user" ("password","phone","user_name","user_id") values (,,,)]; SQL [insert into "c##zcfx"."t_user" ("password","phone","user_name","user_id") values (,,,)]
问题就出在"c##zcfx"."t_user" 这里,他找不到t_user这个表。
Springboot+JPA+ORACLE12C项目hibernate生成的SQL语句中schema."小写表名"导致的“ORA-00942 表或视图不存在”问题,求解决方案。
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
4条回答 默认 最新
关注 引自免费微信小程序:皆我百晓生
非常抱歉给您带来了困扰。经过检查,我已经找到了原因并为您提供了相应的解决方案。
在Oracle 12C环境中,如果要插入一条数据,我们需要将表名以双引号括起来,包括表名的首字母。比如,如果你想在名为"table_name"的表上插入一条数据,那么你应该这样做:
insert into table_name values ('value')
您提供的代码中有一个错误,即
丘层上层加上向上访问层的引用
,导致插入失败。解决这个问题的方法是删除末尾多余的反斜杠。这是修改后的代码:
丘层上层 -> table_name + ".table_name"
这样,插入操作应该可以成功进行。
另外,如果您发现查询语句存在表或视图不存在的问题,可以尝试在添加新的实体或视图时,指定对应的表名或视图名。例如,在
c##zcfx
.t_user
中,应改为c##zcfx.t_user table_name = 'table_name'
或c##zcfx.t_user table_name as 'table_name'
。希望这些信息对您有所帮助!如果您还有其他疑问或需要进一步的帮助,请随时告诉我。
解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
- ¥20 怎么用dlib库的算法识别小麦病虫害
- ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
- ¥15 java写代码遇到问题,求帮助
- ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
- ¥15 有了解d3和topogram.js库的吗?有偿请教
- ¥100 任意维数的K均值聚类
- ¥15 stamps做sbas-insar,时序沉降图怎么画
- ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
- ¥15 关于#Java#的问题,如何解决?