Allow to configure PersistenceUnitPostProcessor
This commit updates EntityManagerFactoryBuilder so that persistence unit post processors can be registered and applied when creating an EntityManagerFactory. See gh-25443
This commit is contained in:
committed by
Stephane Nicoll
parent
67f10e585a
commit
c3c83c8a6c
@@ -21,6 +21,7 @@ import java.util.Map;
|
||||
import java.util.UUID;
|
||||
|
||||
import javax.persistence.EntityManagerFactory;
|
||||
import javax.persistence.spi.PersistenceUnitInfo;
|
||||
import javax.sql.DataSource;
|
||||
|
||||
import org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform;
|
||||
@@ -229,6 +230,19 @@ abstract class AbstractJpaAutoConfigurationTests {
|
||||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
void customPersistenceUnitPostProcessors() {
|
||||
this.contextRunner.withUserConfiguration(TestConfigurationWithCustomPersistenceUnitPostProcessors.class)
|
||||
.run((context) -> {
|
||||
LocalContainerEntityManagerFactoryBean entityManagerFactoryBean = context
|
||||
.getBean(LocalContainerEntityManagerFactoryBean.class);
|
||||
PersistenceUnitInfo persistenceUnitInfo = entityManagerFactoryBean.getPersistenceUnitInfo();
|
||||
assertThat(persistenceUnitInfo).isNotNull();
|
||||
assertThat(persistenceUnitInfo.getManagedClassNames())
|
||||
.contains("customized.attribute.converter.class.name");
|
||||
});
|
||||
}
|
||||
|
||||
@Configuration(proxyBeanMethods = false)
|
||||
static class TestTwoDataSourcesConfiguration {
|
||||
|
||||
@@ -388,6 +402,18 @@ abstract class AbstractJpaAutoConfigurationTests {
|
||||
|
||||
}
|
||||
|
||||
@Configuration(proxyBeanMethods = false)
|
||||
@TestAutoConfigurationPackage(AbstractJpaAutoConfigurationTests.class)
|
||||
static class TestConfigurationWithCustomPersistenceUnitPostProcessors {
|
||||
|
||||
@Bean
|
||||
EntityManagerFactoryBuilderCustomizer entityManagerFactoryBuilderCustomizer() {
|
||||
return (builder) -> builder.setPersistenceUnitPostProcessors(
|
||||
(pui) -> pui.addManagedClassName("customized.attribute.converter.class.name"));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@SuppressWarnings("serial")
|
||||
static class CustomJpaTransactionManager extends JpaTransactionManager {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user