Skip to content

Commit c6104f8

Browse files
authored
Merge pull request #50453 from Aryant-Tripathi/issue-50138-hibernate-orm-named-qualifier
issue-50138-hibernate-orm-named-qualifier
2 parents 9e01517 + b23f378 commit c6104f8

File tree

2 files changed

+38
-4
lines changed

2 files changed

+38
-4
lines changed

extensions/hibernate-orm/deployment/src/main/java/io/quarkus/hibernate/orm/deployment/HibernateOrmCdiProcessor.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -393,10 +393,9 @@ private static <T> ExtendedBeanConfigurator createSyntheticBean(PersistenceUnitR
393393
if (defaultPuName || puRef.forceAllQualifiers) {
394394
configurator.addQualifier(Default.class);
395395
}
396-
if (!defaultPuName || puRef.forceAllQualifiers) {
397-
configurator.addQualifier().annotation(DotNames.NAMED).addValue("value", puRef.persistenceUnitName).done();
398-
configurator.addQualifier().annotation(PersistenceUnit.class).addValue("value", puRef.persistenceUnitName).done();
399-
}
396+
397+
configurator.addQualifier().annotation(DotNames.NAMED).addValue("value", puRef.persistenceUnitName).done();
398+
configurator.addQualifier().annotation(PersistenceUnit.class).addValue("value", puRef.persistenceUnitName).done();
400399

401400
return configurator;
402401
}

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

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import jakarta.transaction.Transactional;
1414

1515
import org.hibernate.SessionFactory;
16+
import org.junit.jupiter.api.Assertions;
1617
import org.junit.jupiter.api.Test;
1718
import org.junit.jupiter.api.extension.RegisterExtension;
1819

@@ -55,6 +56,24 @@ public class MultiplePersistenceUnitsCdiEntityManagerTest {
5556
@Named("inventory")
5657
SessionFactory inventoryFactory;
5758

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+
5877
@Test
5978
@Transactional
6079
public void defaultEntityManagerInTransaction() {
@@ -167,4 +186,20 @@ public void testUserInInventoryEntityManager() {
167186
assertThatThrownBy(() -> inventoryEntityManager.persist(user)).isInstanceOf(IllegalArgumentException.class)
168187
.hasMessageContaining("Unknown entity type");
169188
}
189+
190+
@Test
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");
196+
}
197+
198+
@Test
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>");
204+
}
170205
}

0 commit comments

Comments
 (0)