SpringBoot + Hibernate5.x + Spring Data JPA遇到的坑

我的数据库是Oracle11g/10g都出现了以下的问题

按照网上的配置:

spring.jpa.hibernate.ddl-auto=update
spring.jpa.hibernate.use-new-id-generator-mappings=true
spring.jpa.hibernate.naming.implicit-strategy=org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyJpaImpl
spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl

以上配置会要求实体中配置的属性映射column必须大写.但是在第一次建表成功以后,第二次启动项目按道理会update表结构.然后不是,hibernate依然是走的是create建表语句,导致语句执行失败,提示"名称已由现有对象引用"的错误..

跟踪Hibernate的代码发现,Hibernate在读取metaData时没有获取到tables信息.catalog为null,schema也为null.

解决方案:增加以下jpa属性配置

spring.jpa.properties.hibernate.default_schema=XXXX

xxxx的值为Oracle数据库用户名.并且必须是大写的

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容