Skip to content

Commit 93705f1

Browse files
reda-alaouigregturn
authored andcommitted
EntityManagerBeanDefinitionRegistrarPostProcessor sets primary flag on EntityManager bean definitions.
Closes #2288.
1 parent 648bd74 commit 93705f1

File tree

2 files changed

+17
-4
lines changed

2 files changed

+17
-4
lines changed

src/main/java/org/springframework/data/jpa/repository/support/EntityManagerBeanDefinitionRegistrarPostProcessor.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
* {@link EntityManagerFactory} instances.
4444
*
4545
* @author Oliver Gierke
46+
* @author Réda Housni Alaoui
4647
*/
4748
public class EntityManagerBeanDefinitionRegistrarPostProcessor implements BeanFactoryPostProcessor, Ordered {
4849

@@ -85,6 +86,7 @@ public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory)
8586

8687
AbstractBeanDefinition emBeanDefinition = builder.getRawBeanDefinition();
8788

89+
emBeanDefinition.setPrimary(definition.getBeanDefinition().isPrimary());
8890
emBeanDefinition.addQualifier(new AutowireCandidateQualifier(Qualifier.class, definition.getBeanName()));
8991
emBeanDefinition.setScope(definition.getBeanDefinition().getScope());
9092
emBeanDefinition.setSource(definition.getBeanDefinition().getSource());

src/test/java/org/springframework/data/jpa/repository/support/EntityManagerBeanDefinitionRegistrarPostProcessorIntegrationTests.java

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
import org.springframework.context.annotation.ComponentScan.Filter;
3636
import org.springframework.context.annotation.Configuration;
3737
import org.springframework.context.annotation.ImportResource;
38+
import org.springframework.context.annotation.Primary;
3839
import org.springframework.orm.jpa.JpaVendorAdapter;
3940
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
4041
import org.springframework.stereotype.Component;
@@ -46,6 +47,7 @@
4647
*
4748
* @author Oliver Gierke
4849
* @author Jens Schauder
50+
* @author Réda Housni Alaoui
4951
*/
5052
@ExtendWith(SpringExtension.class)
5153
@ContextConfiguration
@@ -57,7 +59,8 @@ public class EntityManagerBeanDefinitionRegistrarPostProcessorIntegrationTests {
5759
void injectsEntityManagerIntoConstructors() {
5860

5961
assertThat(target).isNotNull();
60-
assertThat(target.em).isNotNull();
62+
assertThat(target.firstEm).isNotNull();
63+
assertThat(target.primaryEm).isNotNull();
6164
}
6265

6366
/**
@@ -104,16 +107,24 @@ LocalContainerEntityManagerFactoryBean firstEmf() {
104107
LocalContainerEntityManagerFactoryBean secondEmf() {
105108
return emf();
106109
}
110+
111+
@Primary
112+
@Bean
113+
LocalContainerEntityManagerFactoryBean thirdEmf() {
114+
return emf();
115+
}
107116
}
108117

109118
@TestComponent
110119
static class EntityManagerInjectionTarget {
111120

112-
private final EntityManager em;
121+
private final EntityManager firstEm;
122+
private final EntityManager primaryEm;
113123

114124
@Autowired
115-
public EntityManagerInjectionTarget(@Qualifier("firstEmf") EntityManager em) {
116-
this.em = em;
125+
public EntityManagerInjectionTarget(@Qualifier("firstEmf") EntityManager firstEm, EntityManager primaryEm) {
126+
this.firstEm = firstEm;
127+
this.primaryEm = primaryEm;
117128
}
118129
}
119130
}

0 commit comments

Comments
 (0)