From b3ba86390fee1296c46f038967cf759daa323368 Mon Sep 17 00:00:00 2001 From: Phillip Webb Date: Fri, 15 Aug 2014 11:49:25 -0700 Subject: [PATCH] Relax EntityManagerFactoryBuilder Map generic Relax the generic signature on EntityManagerFactoryBuilder.properties so that any object type can be added. Fixed gh-1376 --- .../autoconfigure/orm/jpa/EntityManagerFactoryBuilder.java | 2 +- .../orm/jpa/HibernateJpaAutoConfiguration.java | 7 +++++-- .../boot/autoconfigure/orm/jpa/JpaBaseConfiguration.java | 6 +++--- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/orm/jpa/EntityManagerFactoryBuilder.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/orm/jpa/EntityManagerFactoryBuilder.java index da7e1b57d41..1432c27d0ff 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/orm/jpa/EntityManagerFactoryBuilder.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/orm/jpa/EntityManagerFactoryBuilder.java @@ -137,7 +137,7 @@ public class EntityManagerFactoryBuilder { * @param properties the properties to use * @return the builder for fluent usage */ - public Builder properties(Map properties) { + public Builder properties(Map properties) { this.properties.putAll(properties); return this; } diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaAutoConfiguration.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaAutoConfiguration.java index 081b6104491..2cb64bcbd88 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaAutoConfiguration.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaAutoConfiguration.java @@ -16,6 +16,7 @@ package org.springframework.boot.autoconfigure.orm.jpa; +import java.util.LinkedHashMap; import java.util.Map; import javax.persistence.EntityManager; @@ -67,8 +68,10 @@ public class HibernateJpaAutoConfiguration extends JpaBaseConfiguration { } @Override - protected Map getVendorProperties() { - return this.properties.getHibernateProperties(this.dataSource); + protected Map getVendorProperties() { + Map vendorProperties = new LinkedHashMap(); + vendorProperties.putAll(this.properties.getHibernateProperties(this.dataSource)); + return vendorProperties; } static class HibernateEntityManagerCondition extends SpringBootCondition { diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/orm/jpa/JpaBaseConfiguration.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/orm/jpa/JpaBaseConfiguration.java index dbcb6dd656b..0e4c3497a7b 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/orm/jpa/JpaBaseConfiguration.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/orm/jpa/JpaBaseConfiguration.java @@ -102,14 +102,14 @@ public abstract class JpaBaseConfiguration implements BeanFactoryAware { @Primary @ConditionalOnMissingBean public LocalContainerEntityManagerFactoryBean entityManagerFactory( - EntityManagerFactoryBuilder factory) { - return factory.dataSource(this.dataSource).packages(getPackagesToScan()) + EntityManagerFactoryBuilder factoryBuilder) { + return factoryBuilder.dataSource(this.dataSource).packages(getPackagesToScan()) .properties(getVendorProperties()).build(); } protected abstract AbstractJpaVendorAdapter createJpaVendorAdapter(); - protected abstract Map getVendorProperties(); + protected abstract Map getVendorProperties(); protected EntityManagerFactoryBuilder.EntityManagerFactoryBeanCallback getVendorCallback() { return null;