Skip to content

Commit 1f1036e

Browse files
committed
Fix an issue with StatelessSession qualifiers
Probably due to a copy/pasto. Also added a test. Related to quarkusio#47437
1 parent 86aa614 commit 1f1036e

File tree

2 files changed

+77
-1
lines changed

2 files changed

+77
-1
lines changed

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,7 @@ void generateDataSourceBeans(HibernateOrmRecorder recorder,
246246

247247
syntheticBeanBuildItemBuildProducer
248248
.produce(createSyntheticBean(persistenceUnitName,
249-
true, true,
249+
isDefaultPU, isNamedPU,
250250
StatelessSession.class, STATELESS_SESSION_EXPOSED_TYPES, false)
251251
.createWith(recorder.statelessSessionSupplier(persistenceUnitName))
252252
.addInjectionPoint(ClassType.create(DotName.createSimple(TransactionSessions.class)))
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
package io.quarkus.hibernate.orm.multiplepersistenceunits;
2+
3+
import static org.assertj.core.api.Assertions.assertThatThrownBy;
4+
import static org.junit.jupiter.api.Assertions.assertEquals;
5+
6+
import jakarta.inject.Inject;
7+
import jakarta.transaction.Transactional;
8+
9+
import org.hibernate.StatelessSession;
10+
import org.hibernate.UnknownEntityTypeException;
11+
import org.junit.jupiter.api.Test;
12+
import org.junit.jupiter.api.extension.RegisterExtension;
13+
14+
import io.quarkus.hibernate.orm.PersistenceUnit;
15+
import io.quarkus.hibernate.orm.multiplepersistenceunits.model.config.DefaultEntity;
16+
import io.quarkus.hibernate.orm.multiplepersistenceunits.model.config.inventory.Plane;
17+
import io.quarkus.hibernate.orm.multiplepersistenceunits.model.config.user.User;
18+
import io.quarkus.test.QuarkusUnitTest;
19+
20+
public class MultiplePersistenceUnitsCdiStatelessSessionTest {
21+
22+
@RegisterExtension
23+
static QuarkusUnitTest runner = new QuarkusUnitTest()
24+
.withApplicationRoot((jar) -> jar
25+
.addClass(DefaultEntity.class)
26+
.addClass(User.class)
27+
.addClass(Plane.class)
28+
.addAsResource("application-multiple-persistence-units.properties", "application.properties"));
29+
30+
@Inject
31+
StatelessSession defaultSession;
32+
33+
@Inject
34+
@PersistenceUnit("users")
35+
StatelessSession usersSession;
36+
37+
@Inject
38+
@PersistenceUnit("inventory")
39+
StatelessSession inventorySession;
40+
41+
@Test
42+
@Transactional
43+
public void defaultEntityManagerInTransaction() {
44+
DefaultEntity defaultEntity = new DefaultEntity("default");
45+
defaultSession.insert(defaultEntity);
46+
47+
DefaultEntity savedDefaultEntity = defaultSession.get(DefaultEntity.class, defaultEntity.getId());
48+
assertEquals(defaultEntity.getName(), savedDefaultEntity.getName());
49+
}
50+
51+
@Transactional
52+
public void usersEntityManagerInTransaction() {
53+
User user = new User("gsmet");
54+
usersSession.insert(user);
55+
56+
User savedUser = usersSession.get(User.class, user.getId());
57+
assertEquals(user.getName(), savedUser.getName());
58+
}
59+
60+
@Test
61+
@Transactional
62+
public void inventoryEntityManagerInTransaction() {
63+
Plane plane = new Plane("Airbus A380");
64+
inventorySession.insert(plane);
65+
66+
Plane savedPlane = inventorySession.get(Plane.class, plane.getId());
67+
assertEquals(plane.getName(), savedPlane.getName());
68+
}
69+
70+
@Test
71+
@Transactional
72+
public void testUserInInventorySession() {
73+
User user = new User("gsmet");
74+
assertThatThrownBy(() -> inventorySession.insert(user)).isInstanceOf(UnknownEntityTypeException.class);
75+
}
76+
}

0 commit comments

Comments
 (0)