Skip to content

Commit b23f378

Browse files
Consistently apply @ Named and @PersistenceUnit qualifiers to Hibernate ORM beans
- Previously, the @ Named and @PersistenceUnit qualifiers were added conditionally to Hibernate ORM beans. This change ensures that both qualifiers are always applied for every persistence unit, aligning the behavior with Hibernate Search and improving consistency and CDI injection reliability across the codebase. - Tests are updated to confirm that beans are correctly qualified and injected for each persistence unit. - Fixes #50138
1 parent e80fea1 commit b23f378

File tree

1 file changed

+28
-12
lines changed

1 file changed

+28
-12
lines changed

extensions/hibernate-orm/deployment/src/test/java/io/quarkus/hibernate/orm/multiplepersistenceunits/MultiplePersistenceUnitsCdiEntityManagerTest.java

Lines changed: 28 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,24 @@ public class MultiplePersistenceUnitsCdiEntityManagerTest {
5656
@Named("inventory")
5757
SessionFactory inventoryFactory;
5858

59+
@Inject
60+
@PersistenceUnit("<default>")
61+
EntityManager defaultEntityManagerWithQualifier;
62+
63+
@Inject
64+
@PersistenceUnit("<default>")
65+
SessionFactory defaultSessionFactoryWithQualifier;
66+
67+
@Inject
68+
@Named("<default>")
69+
@PersistenceUnit("<default>")
70+
EntityManager defaultEntityManagerWithBothQualifiers;
71+
72+
@Inject
73+
@Named("<default>")
74+
@PersistenceUnit("<default>")
75+
SessionFactory defaultSessionFactoryWithBothQualifiers;
76+
5977
@Test
6078
@Transactional
6179
public void defaultEntityManagerInTransaction() {
@@ -170,20 +188,18 @@ public void testUserInInventoryEntityManager() {
170188
}
171189

172190
@Test
173-
public void injectedEntityManagersAndSessionFactoriesAreProperlyQualified() {
174-
Assertions.assertNotNull(usersEntityManager,
175-
"@PersistenceUnit(\"users\") EntityManager should be injected and non-null");
176-
Assertions.assertNotNull(inventoryEntityManager,
177-
"@PersistenceUnit(\"inventory\") EntityManager should be injected and non-null");
178-
179-
Assertions.assertNotNull(usersFactory, "@Named(\"users\") SessionFactory should be injected and non-null");
180-
Assertions.assertNotNull(inventoryFactory, "@Named(\"inventory\") SessionFactory should be injected and non-null");
191+
public void defaultQualifiedEntityManagerAndSessionFactoryAreInjected() {
192+
Assertions.assertNotNull(defaultEntityManagerWithQualifier,
193+
"@PersistenceUnit(\"<default>\") EntityManager should be injected and non-null");
194+
Assertions.assertNotNull(defaultSessionFactoryWithQualifier,
195+
"@PersistenceUnit(\"<default>\") SessionFactory should be injected and non-null");
181196
}
182197

183198
@Test
184-
public void injectedDefaultEntityManagerAndSessionFactoryAreNonNull() {
185-
186-
Assertions.assertNotNull(defaultEntityManager, "Default EntityManager should be injected and non-null");
187-
Assertions.assertNotNull(defaultSessionFactory, "Default SessionFactory should be injected and non-null");
199+
public void defaultEntityManagerAndSessionFactoryWithBothQualifiersAreInjected() {
200+
Assertions.assertNotNull(defaultEntityManagerWithBothQualifiers,
201+
"EntityManager should be injectable with both @Named and @PersistenceUnit qualifiers for <default>");
202+
Assertions.assertNotNull(defaultSessionFactoryWithBothQualifiers,
203+
"SessionFactory should be injectable with both @Named and @PersistenceUnit qualifiers for <default>");
188204
}
189205
}

0 commit comments

Comments
 (0)