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数据库用户名.并且必须是大写的

你可能感兴趣的:(SpringBoot + Hibernate5.x + Spring Data JPA遇到的坑)