diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/orm/jpa/HibernateProperties.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/orm/jpa/HibernateProperties.java index 25fb54a7ee..eb56d17fec 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/orm/jpa/HibernateProperties.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/orm/jpa/HibernateProperties.java @@ -21,7 +21,11 @@ import java.util.HashMap; import java.util.Map; import java.util.function.Supplier; +import org.hibernate.cfg.AvailableSettings; + import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy; +import org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy; import org.springframework.util.Assert; import org.springframework.util.ObjectUtils; import org.springframework.util.StringUtils; @@ -36,9 +40,6 @@ import org.springframework.util.StringUtils; @ConfigurationProperties("spring.jpa.hibernate") public class HibernateProperties { - private static final String USE_NEW_ID_GENERATOR_MAPPINGS = "hibernate.id." - + "new_generator_mappings"; - private final Naming naming = new Naming(); /** @@ -97,10 +98,10 @@ public class HibernateProperties { getNaming().applyNamingStrategies(result); String ddlAuto = determineDdlAuto(existing, settings::getDdlAuto); if (StringUtils.hasText(ddlAuto) && !"none".equals(ddlAuto)) { - result.put("hibernate.hbm2ddl.auto", ddlAuto); + result.put(AvailableSettings.HBM2DDL_AUTO, ddlAuto); } else { - result.remove("hibernate.hbm2ddl.auto"); + result.remove(AvailableSettings.HBM2DDL_AUTO); } Collection customizers = settings .getHibernatePropertiesCustomizers(); @@ -112,17 +113,17 @@ public class HibernateProperties { private void applyNewIdGeneratorMappings(Map result) { if (this.useNewIdGeneratorMappings != null) { - result.put(USE_NEW_ID_GENERATOR_MAPPINGS, + result.put(AvailableSettings.USE_NEW_ID_GENERATOR_MAPPINGS, this.useNewIdGeneratorMappings.toString()); } - else if (!result.containsKey(USE_NEW_ID_GENERATOR_MAPPINGS)) { - result.put(USE_NEW_ID_GENERATOR_MAPPINGS, "true"); + else if (!result.containsKey(AvailableSettings.USE_NEW_ID_GENERATOR_MAPPINGS)) { + result.put(AvailableSettings.USE_NEW_ID_GENERATOR_MAPPINGS, "true"); } } private String determineDdlAuto(Map existing, Supplier defaultDdlAuto) { - String ddlAuto = existing.get("hibernate.hbm2ddl.auto"); + String ddlAuto = existing.get(AvailableSettings.HBM2DDL_AUTO); if (ddlAuto != null) { return ddlAuto; } @@ -131,10 +132,6 @@ public class HibernateProperties { public static class Naming { - private static final String DEFAULT_PHYSICAL_STRATEGY = "org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy"; - - private static final String DEFAULT_IMPLICIT_STRATEGY = "org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy"; - /** * Fully qualified name of the implicit naming strategy. */ @@ -162,10 +159,10 @@ public class HibernateProperties { } private void applyNamingStrategies(Map properties) { - applyNamingStrategy(properties, "hibernate.implicit_naming_strategy", - this.implicitStrategy, DEFAULT_IMPLICIT_STRATEGY); - applyNamingStrategy(properties, "hibernate.physical_naming_strategy", - this.physicalStrategy, DEFAULT_PHYSICAL_STRATEGY); + applyNamingStrategy(properties, AvailableSettings.IMPLICIT_NAMING_STRATEGY, + this.implicitStrategy, SpringImplicitNamingStrategy.class.getName()); + applyNamingStrategy(properties, AvailableSettings.PHYSICAL_NAMING_STRATEGY, + this.physicalStrategy, SpringPhysicalNamingStrategy.class.getName()); } private void applyNamingStrategy(Map properties, String key, diff --git a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/orm/jpa/HibernatePropertiesTests.java b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/orm/jpa/HibernatePropertiesTests.java index 3a3ee40e1c..b3d362e5e0 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/orm/jpa/HibernatePropertiesTests.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/orm/jpa/HibernatePropertiesTests.java @@ -63,10 +63,10 @@ public class HibernatePropertiesTests { assertThat(hibernateProperties) .doesNotContainKeys("hibernate.ejb.naming_strategy"); assertThat(hibernateProperties).containsEntry( - "hibernate.physical_naming_strategy", + AvailableSettings.PHYSICAL_NAMING_STRATEGY, SpringPhysicalNamingStrategy.class.getName()); assertThat(hibernateProperties).containsEntry( - "hibernate.implicit_naming_strategy", + AvailableSettings.IMPLICIT_NAMING_STRATEGY, SpringImplicitNamingStrategy.class.getName()); })); } @@ -78,9 +78,9 @@ public class HibernatePropertiesTests { "spring.jpa.hibernate.naming.physical-strategy:com.example.Physical") .run(assertHibernateProperties((hibernateProperties) -> { assertThat(hibernateProperties).contains( - entry("hibernate.implicit_naming_strategy", + entry(AvailableSettings.IMPLICIT_NAMING_STRATEGY, "com.example.Implicit"), - entry("hibernate.physical_naming_strategy", + entry(AvailableSettings.PHYSICAL_NAMING_STRATEGY, "com.example.Physical")); assertThat(hibernateProperties) .doesNotContainKeys("hibernate.ejb.naming_strategy"); @@ -95,9 +95,9 @@ public class HibernatePropertiesTests { .run(assertHibernateProperties((hibernateProperties) -> { // You can override them as we don't provide any default assertThat(hibernateProperties).contains( - entry("hibernate.implicit_naming_strategy", + entry(AvailableSettings.IMPLICIT_NAMING_STRATEGY, "com.example.Implicit"), - entry("hibernate.physical_naming_strategy", + entry(AvailableSettings.PHYSICAL_NAMING_STRATEGY, "com.example.Physical")); assertThat(hibernateProperties) .doesNotContainKeys("hibernate.ejb.naming_strategy"); @@ -139,7 +139,7 @@ public class HibernatePropertiesTests { private ContextConsumer assertDefaultDdlAutoNotInvoked( String expectedDdlAuto) { return assertHibernateProperties((hibernateProperties) -> { - assertThat(hibernateProperties).containsEntry("hibernate.hbm2ddl.auto", + assertThat(hibernateProperties).containsEntry(AvailableSettings.HBM2DDL_AUTO, expectedDdlAuto); verify(this.ddlAutoSupplier, never()).get(); });