Skip to content

Commit efffe96

Browse files
committed
Fix regression that entityManager can not be intercepted
Fix spring-projectsGH-2730
1 parent 1d69ece commit efffe96

File tree

2 files changed

+15
-1
lines changed

2 files changed

+15
-1
lines changed

spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/config/JpaRepositoryConfigExtension.java

-1
Original file line numberDiff line numberDiff line change
@@ -217,7 +217,6 @@ private String registerSharedEntityMangerIfNotAlreadyRegistered(BeanDefinitionRe
217217

218218
AbstractBeanDefinition entityManager = getEntityManagerBeanDefinitionFor(config, null);
219219
entityManager.setRole(BeanDefinition.ROLE_SUPPORT);
220-
entityManager.setSynthetic(true);
221220
entityManager.setPrimary(false);
222221
entityManager.setAutowireCandidate(false);
223222

spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/config/JpaRepositoryConfigExtensionUnitTests.java

+15
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import org.mockito.junit.jupiter.MockitoSettings;
3232
import org.mockito.quality.Strictness;
3333
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
34+
import org.springframework.beans.factory.support.AbstractBeanDefinition;
3435
import org.springframework.beans.factory.support.BeanDefinitionReaderUtils;
3536
import org.springframework.beans.factory.support.DefaultListableBeanFactory;
3637
import org.springframework.beans.factory.support.RootBeanDefinition;
@@ -147,6 +148,20 @@ void exposesJpaAotProcessor() {
147148
.isEqualTo(JpaRepositoryConfigExtension.JpaRepositoryRegistrationAotProcessor.class);
148149
}
149150

151+
@Test // GH-2730
152+
void shouldNotRegisterEntityManagerAsSynthetic() {
153+
154+
DefaultListableBeanFactory factory = new DefaultListableBeanFactory();
155+
156+
RepositoryConfigurationExtension extension = new JpaRepositoryConfigExtension();
157+
extension.registerBeansForRoot(factory, configSource);
158+
159+
AbstractBeanDefinition bd = (AbstractBeanDefinition) factory.getBeanDefinition("jpaSharedEM_"
160+
+ configSource.getAttribute("entityManagerFactoryRef").orElse("entityManagerFactory"));
161+
162+
assertThat(bd.isSynthetic()).isEqualTo(false);
163+
}
164+
150165
private void assertOnlyOnePersistenceAnnotationBeanPostProcessorRegistered(DefaultListableBeanFactory factory,
151166
String expectedBeanName) {
152167

0 commit comments

Comments
 (0)