Align Hibernate 5 join table names with those from SpringNamingStrategy
Previously, the name of a join table when using Hibernate 5 would differ from those when using Hibernate 4 with the default SpringNamingStrategy. This commit introduces SpringImplicitNamingStrategy which customises the name of join tables to match those produced by SpringNamingStrategy. Closes gh-5880
This commit is contained in:
@@ -235,6 +235,8 @@ public class JpaProperties {
|
||||
|
||||
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";
|
||||
|
||||
/**
|
||||
* Hibernate 5 implicit naming strategy fully qualified name.
|
||||
*/
|
||||
@@ -288,7 +290,8 @@ public class JpaProperties {
|
||||
|
||||
private void applyHibernate5NamingStrategy(Map<String, String> properties) {
|
||||
applyHibernate5NamingStrategy(properties,
|
||||
"hibernate.implicit_naming_strategy", this.implicitStrategy, null);
|
||||
"hibernate.implicit_naming_strategy", this.implicitStrategy,
|
||||
DEFAULT_IMPLICIT_STRATEGY);
|
||||
applyHibernate5NamingStrategy(properties,
|
||||
"hibernate.physical_naming_strategy", this.physicalStrategy,
|
||||
DEFAULT_PHYSICAL_STRATEGY);
|
||||
|
||||
@@ -26,6 +26,7 @@ import org.junit.After;
|
||||
import org.junit.Test;
|
||||
|
||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||
import org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy;
|
||||
import org.springframework.boot.orm.jpa.hibernate.SpringNamingStrategy;
|
||||
import org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy;
|
||||
import org.springframework.boot.test.util.EnvironmentTestUtils;
|
||||
@@ -98,11 +99,14 @@ public class JpaPropertiesTests {
|
||||
JpaProperties properties = load(HibernateVersion.V5);
|
||||
Map<String, String> hibernateProperties = properties
|
||||
.getHibernateProperties(mockStandaloneDataSource());
|
||||
assertThat(hibernateProperties).doesNotContainKeys(
|
||||
"hibernate.ejb.naming_strategy", "hibernate.implicit_naming_strategy");
|
||||
assertThat(hibernateProperties)
|
||||
.doesNotContainKeys("hibernate.ejb.naming_strategy");
|
||||
assertThat(hibernateProperties).containsEntry(
|
||||
"hibernate.physical_naming_strategy",
|
||||
SpringPhysicalNamingStrategy.class.getName());
|
||||
assertThat(hibernateProperties).containsEntry(
|
||||
"hibernate.implicit_naming_strategy",
|
||||
SpringImplicitNamingStrategy.class.getName());
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user