我的數(shù)據(jù)庫(kù)是Oracle11g/10g都出現(xiàn)了以下的問(wèn)題
按照網(wǎng)上的配置:
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
以上配置會(huì)要求實(shí)體中配置的屬性映射column必須大寫(xiě).但是在第一次建表成功以后,第二次啟動(dòng)項(xiàng)目按道理會(huì)update表結(jié)構(gòu).然后不是,hibernate依然是走的是create建表語(yǔ)句,導(dǎo)致語(yǔ)句執(zhí)行失敗,提示"名稱已由現(xiàn)有對(duì)象引用"的錯(cuò)誤..
跟蹤Hibernate的代碼發(fā)現(xiàn),Hibernate在讀取metaData時(shí)沒(méi)有獲取到tables信息.catalog為null,schema也為null.
解決方案:增加以下jpa屬性配置
spring.jpa.properties.hibernate.default_schema=XXXX
xxxx的值為Oracle數(shù)據(jù)庫(kù)用戶名.并且必須是大寫(xiě)的