1.报错信息:Cause: org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "USER" not found; SQL statement:

2.当时状况:这个报错信息就是说找不到对应的表,确实,我数据库中的表是叫user,是小写的,但是这里为什么会去找大写的表呢,我看了mapper,是正确的,而且我打印了sql出来看,发现sql也是正确的是去查的小写的user表

3.排查问题:异常折磨,我去查找了问什么mapper正确sql语句正确,但是还是会报出找不到这个大写名字的表,有说是hibernate应该配置上这个策略,可以把大写都转换成小写,也会增加下划线

spring:

jpa:

hibernate:

ddl-auto: update

naming:

# physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl

physical-strategy: org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy

但是没有用,还是一样的错误,而且本来这个配置就是默认的。。。然后我就继续找解决办法,一个办法说把数据库改成大小写不敏感,这样也是能解决我现在的问题,但是这个要改服务器的数据库,我没有用这个方法,因为这个错误只在我一个项目中出现,但是其他项目没有出现这个问题,我觉得可能可以不需要在数据库上动刀子就可以解决的,找了两天,嗯是找不到解决办法,什么版本springboot和h2版本问题,也不是我这个问题的答案。

4.解决办法:最后问了组长,组长冷漠回了一句,删掉.idea文件。哦豁,我好像懂了点什么,确实是删掉.idea这个本地配置文件就没得问题了。这是我没有想到的问题,有点超出了我的知识范围了,所以必须mark下来

5.自我补课:

.idea目录:是IDE的项目配置目录,包含了与项目相关的各种配置文件。在该目录下可以找到与项目设置、模块、版本控制等相关的配置信息

.idea文件夹的作用如下:

存储项目的配置信息:.idea文件夹中包含了项目的各种配置文件,如项目的编译输出路径、模块的依赖关系、版本控制(VCS)配置等。这些配置文件会被IntelliJ IDEA使用来正确构建和管理项目。

存储IDEA工程的配置文件:.idea文件夹中还包含了一些IDEA工程级别的配置文件,如工程文件(.ipr)、模块文件(.iml)等。这些文件记录了项目的整体结构和相关配置,包括模块的依赖关系、编译选项、运行配置等。

存储其他工具和插件的配置文件:有些插件或工具可能需要在.idea文件夹下存储一些配置文件。例如,一些代码检查工具或持续集成工具可能需要存储一些配置信息以与IntelliJ IDEA集成。

总之,.idea文件夹是IntelliJ IDEA用于存储项目和IDEA工程的配置信息的文件夹。它包含了项目的各种设置和元数据,有助于提供正确的构建和开发环境。通常情况下,我们不需要手动修改或删除.idea文件夹中的文件,除非有特殊需求或出现了一些配置问题。

参:IntelliJ IDEA基础文件以及介绍_.idea文件-CSDN博客

参考阅读

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。