Take JPA database action into account when setting ddlAuto

See gh-25129
This commit is contained in:
bono007
2021-02-07 16:02:21 -06:00
committed by Stephane Nicoll
parent e4fa39df01
commit 674b01cb06
4 changed files with 65 additions and 1 deletions

View File

@@ -129,7 +129,8 @@ class DataSourceInitializedPublisher implements BeanPostProcessor {
: "none");
Map<String, Object> hibernate = this.hibernateProperties.determineHibernateProperties(
this.jpaProperties.getProperties(), new HibernateSettings().ddlAuto(defaultDdlAuto));
return hibernate.containsKey("hibernate.hbm2ddl.auto");
return hibernate.containsKey("hibernate.hbm2ddl.auto") || !hibernate
.getOrDefault("javax.persistence.schema-generation.database.action", "none").equals("none");
}
/**

View File

@@ -35,6 +35,7 @@ import org.springframework.util.StringUtils;
* Configuration properties for Hibernate.
*
* @author Stephane Nicoll
* @author Chris Bono
* @since 2.1.0
* @see JpaProperties
*/
@@ -129,6 +130,9 @@ public class HibernateProperties {
}
private String determineDdlAuto(Map<String, String> existing, Supplier<String> defaultDdlAuto) {
if (existing.get(AvailableSettings.HBM2DDL_DATABASE_ACTION) != null) {
return null;
}
String ddlAuto = existing.get(AvailableSettings.HBM2DDL_AUTO);
if (ddlAuto != null) {
return ddlAuto;