使用ddl-auto UPDATE时将Hibernate 4升级到5

Cel*_*nHC 5 java ddl hibernate spring-boot

Hibernate 4应用程序设置

spring.jpa.hibernate.ddl-auto = update
spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.DefaultComponentSafeNamingStrategy
Run Code Online (Sandbox Code Playgroud)

Hibernate 5应用程序设置

spring.jpa.hibernate.ddl-auto = update
spring.jpa.hibernate.naming.implicit-strategy = org.hibernate.boot.model.naming.ImplicitNamingStrategyComponentPathImpl
spring.jpa.hibernate.naming.physical-strategy = org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
Run Code Online (Sandbox Code Playgroud)

表格和列是根据旧模型生成的,但可以预测关键名称的更改.

所以我有:

org.hibernate.tool.hbm2ddl.SchemaUpdate  : HHH000228: Running hbm2ddl schema update
Unable to execute schema management to JDBC target [alter table acidentepessoal_cruz_em add constraint FKddk6qn84r6c1kyhukvffaleao foreign key (emCruzamentos_id) references CruzamentoEm]
ORA-02275: such a referential constraint already exists in the table
Run Code Online (Sandbox Code Playgroud)

ddl-autoupdate框架时,尝试创建另一个FK,因为hibernate 5会从先前版本生成不同的FK名称.

我试图扩展ImplicitNamingStrategyComponentPathImpl并委托FK名称生成DefaultComponentSafeNamingStrategy.当我意识到这只处理表和列名时,我感到很惊讶.

如何管理?如何在Hibernate 5中使用hibernate 4外键名称生成?使用ddl-auto = update时如何从Hibernate 4升级到5?