Skip to content

Commit 7477771

Browse files
committed
HHH-15256 Add test for issue
1 parent 5d6e9a1 commit 7477771

File tree

1 file changed

+52
-3
lines changed

1 file changed

+52
-3
lines changed

hibernate-core/src/test/java/org/hibernate/orm/test/query/EntityAsParamValueTest.java

Lines changed: 52 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import org.hibernate.testing.orm.junit.DomainModel;
1111
import org.hibernate.testing.orm.junit.SessionFactory;
1212
import org.hibernate.testing.orm.junit.SessionFactoryScope;
13+
import org.junit.jupiter.api.AfterEach;
1314
import org.junit.jupiter.api.BeforeEach;
1415
import org.junit.jupiter.api.Test;
1516

@@ -19,6 +20,8 @@
1920
import jakarta.persistence.ManyToOne;
2021
import jakarta.persistence.Table;
2122

23+
import static org.hamcrest.CoreMatchers.is;
24+
import static org.hamcrest.MatcherAssert.assertThat;
2225
import static org.junit.jupiter.api.Assertions.assertNotNull;
2326

2427
@DomainModel(
@@ -28,17 +31,19 @@
2831
}
2932
)
3033
@SessionFactory
31-
@TestForIssue(jiraKey = "HHH-15223")
3234
public class EntityAsParamValueTest {
3335

36+
public static long ID_ENTITY_WHITOUT_ORGANIZER = 1;
37+
public static long ID_ENTITY_WHIT_ORGANIZER = 2;
38+
3439
@BeforeEach
3540
public void setUp(SessionFactoryScope scope) {
3641
scope.inTransaction(
3742
session -> {
3843
Organizer organizer = new Organizer( 1L, "Test Organizer" );
3944

40-
Event eventWithOrganizer = new Event( 1L, "Test Event", organizer );
41-
Event eventWithoutOrganizer = new Event( 2L, "Null Event", null );
45+
Event eventWithOrganizer = new Event( ID_ENTITY_WHIT_ORGANIZER, "Test Event", organizer );
46+
Event eventWithoutOrganizer = new Event( ID_ENTITY_WHITOUT_ORGANIZER, "Null Event", null );
4247

4348
session.persist( organizer );
4449
session.persist( eventWithOrganizer );
@@ -47,7 +52,49 @@ public void setUp(SessionFactoryScope scope) {
4752
);
4853
}
4954

55+
@AfterEach
56+
public void tearDown(SessionFactoryScope scope) {
57+
scope.inTransaction(
58+
session -> {
59+
session.createMutationQuery( "delete from Event" ).executeUpdate();
60+
session.createMutationQuery( "delete from Organizer" ).executeUpdate();
61+
}
62+
);
63+
}
64+
65+
@Test
66+
@TestForIssue(jiraKey = "HHH-15256")
67+
public void testQueryWithLeftJoinEntityAsParamValue(SessionFactoryScope scope) {
68+
scope.inTransaction(
69+
session -> {
70+
Organizer organizer = session.get( Organizer.class, 1L );
71+
assertNotNull( organizer );
72+
73+
Event event = session.createQuery(
74+
"FROM Event e LEFT JOIN e.organizer WHERE (:organizer IS NULL AND e.organizer IS NULL OR e.organizer = :organizer)",
75+
Event.class
76+
)
77+
.setParameter( "organizer", organizer )
78+
.setMaxResults( 1 )
79+
.uniqueResult();
80+
assertNotNull( event );
81+
assertThat( event.getId(), is( ID_ENTITY_WHIT_ORGANIZER ) );
82+
83+
event = session.createQuery(
84+
"FROM Event e LEFT JOIN e.organizer WHERE (:organizer IS NULL AND e.organizer IS NULL OR e.organizer = :organizer)",
85+
Event.class
86+
)
87+
.setParameter( "organizer", null )
88+
.setMaxResults( 1 )
89+
.uniqueResult();
90+
assertNotNull( event );
91+
assertThat( event.getId(), is( ID_ENTITY_WHITOUT_ORGANIZER ) );
92+
}
93+
);
94+
}
95+
5096
@Test
97+
@TestForIssue(jiraKey = "HHH-15223")
5198
public void testQueryWithEntityAsParamValue(SessionFactoryScope scope) {
5299
scope.inTransaction(
53100
session -> {
@@ -62,6 +109,7 @@ public void testQueryWithEntityAsParamValue(SessionFactoryScope scope) {
62109
.setMaxResults( 1 )
63110
.uniqueResult();
64111
assertNotNull( event );
112+
assertThat( event.getId(), is( ID_ENTITY_WHIT_ORGANIZER ) );
65113

66114
event = session.createQuery(
67115
"FROM Event e WHERE (:organizer IS NULL AND e.organizer IS NULL OR e.organizer = :organizer)",
@@ -71,6 +119,7 @@ public void testQueryWithEntityAsParamValue(SessionFactoryScope scope) {
71119
.setMaxResults( 1 )
72120
.uniqueResult();
73121
assertNotNull( event );
122+
assertThat( event.getId(), is( ID_ENTITY_WHITOUT_ORGANIZER ) );
74123
}
75124
);
76125
}

0 commit comments

Comments
 (0)