|
|
|
|
@ -27,6 +27,7 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
@@ -27,6 +27,7 @@ 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.ClassUtils; |
|
|
|
|
import org.springframework.util.ObjectUtils; |
|
|
|
|
import org.springframework.util.StringUtils; |
|
|
|
|
|
|
|
|
|
@ -40,6 +41,8 @@ import org.springframework.util.StringUtils;
@@ -40,6 +41,8 @@ import org.springframework.util.StringUtils;
|
|
|
|
|
@ConfigurationProperties("spring.jpa.hibernate") |
|
|
|
|
public class HibernateProperties { |
|
|
|
|
|
|
|
|
|
private static final String DISABLED_SCANNER_CLASS = "org.hibernate.boot.archive.scan.internal.DisabledScanner"; |
|
|
|
|
|
|
|
|
|
private final Naming naming = new Naming(); |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
@ -95,6 +98,7 @@ public class HibernateProperties {
@@ -95,6 +98,7 @@ public class HibernateProperties {
|
|
|
|
|
HibernateSettings settings) { |
|
|
|
|
Map<String, Object> result = new HashMap<>(existing); |
|
|
|
|
applyNewIdGeneratorMappings(result); |
|
|
|
|
applyScanner(result); |
|
|
|
|
getNaming().applyNamingStrategies(result); |
|
|
|
|
String ddlAuto = determineDdlAuto(existing, settings::getDdlAuto); |
|
|
|
|
if (StringUtils.hasText(ddlAuto) && !"none".equals(ddlAuto)) { |
|
|
|
|
@ -121,6 +125,13 @@ public class HibernateProperties {
@@ -121,6 +125,13 @@ public class HibernateProperties {
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void applyScanner(Map<String, Object> result) { |
|
|
|
|
if (!result.containsKey(AvailableSettings.SCANNER) |
|
|
|
|
&& ClassUtils.isPresent(DISABLED_SCANNER_CLASS, null)) { |
|
|
|
|
result.put(AvailableSettings.SCANNER, DISABLED_SCANNER_CLASS); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private String determineDdlAuto(Map<String, String> existing, |
|
|
|
|
Supplier<String> defaultDdlAuto) { |
|
|
|
|
String ddlAuto = existing.get(AvailableSettings.HBM2DDL_AUTO); |
|
|
|
|
|