Spring Boot从H2切换到SQLite后出现方法不存在错误的解决求助
Spring Boot从H2切换到SQLite后出现方法不存在错误的解决求助
你遇到的这个问题本质上是Hibernate版本与SQLite方言依赖不兼容导致的,咱们来拆解下原因和解决办法:
问题根源
之前你添加com.github.gwenn:sqlite-dialect:0.1.4解决了“无法解析org.hibernate.dialect.SQLiteDialect”的问题,但这个版本是针对Hibernate 5.x开发的。而你用的Spring Boot 3.3.5对应的Hibernate版本是6.5.3.Final,Hibernate 6.x对Dialect类做了API调整——其中registerColumnType方法的签名发生了变化,旧版本的方言依赖调用的还是Hibernate 5的方法,自然就会出现“方法不存在”的报错。
具体解决步骤
1. 更换适配Hibernate 6的SQLite方言依赖
把你pom.xml里的SQLite方言依赖版本升级到0.2.0及以上(这个版本开始支持Hibernate 6),比如用最新的稳定版0.2.1:
<dependency> <groupId>com.github.gwenn</groupId> <artifactId>sqlite-dialect</artifactId> <version>0.2.1</version> </dependency>
2. 确认配置文件的方言路径
保持application.properties里的方言配置不变就行,还是用第三方方言的全类名:
spring.jpa.database-platform=org.sqlite.hibernate.dialect.SQLiteDialect
3. 清理Maven缓存并重新构建
之前你删除.m2文件夹但没换依赖版本,所以重新下载的还是旧的不兼容包。这次改完版本后,执行Maven命令清理缓存并重新构建:
mvn clean install -U
或者在IDE里右键项目选择Maven -> Clean再Maven -> Install,确保新的依赖包被正确下载。
验证
重启你的Spring Boot应用,应该就能正常连接SQLite数据库了,之前的“方法不存在”错误会消失。
备注:内容来源于stack exchange,提问作者Haerin
相关产品推荐
相关产品推荐

