Skip to content

Commit 3baccbc

Browse files
dreab8DavideD
authored andcommitted
[#2515] Add test for Wrong query generated when an EnbeddedId is used in a WHERE clause using the IN operator
1 parent f933ff9 commit 3baccbc

File tree

1 file changed

+56
-0
lines changed

1 file changed

+56
-0
lines changed

hibernate-reactive-core/src/test/java/org/hibernate/reactive/EmbeddedIdTest.java

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
package org.hibernate.reactive;
77

88
import java.util.Collection;
9+
import java.util.List;
910
import java.util.Objects;
1011
import java.util.Set;
1112

@@ -49,6 +50,61 @@ public void testFindSingleId(VertxTestContext context) {
4950
);
5051
}
5152

53+
@Test
54+
public void testQueryWithListOfParametersValues(VertxTestContext context) {
55+
test( context, getMutinySessionFactory().withTransaction( s -> s
56+
.createQuery( "from Delivery d where d.locationId in (?1)", Delivery.class )
57+
.setParameter( 1, verbania )
58+
.getResultList()
59+
).invoke( deliveries -> {
60+
assertThat( deliveries ).hasSize( 1 );
61+
assertThat( deliveries ).contains( pizza );
62+
} )
63+
);
64+
}
65+
66+
@Test
67+
public void testQueryWithWhereClauseContainingInOperator(VertxTestContext context) {
68+
test( context, getMutinySessionFactory().withTransaction( s -> s
69+
.createQuery( "from Delivery d where d.locationId in ?1", Delivery.class )
70+
.setParameter( 1, List.of( verbania ) )
71+
.getResultList()
72+
).invoke( deliveries -> {
73+
assertThat( deliveries ).hasSize( 1 );
74+
assertThat( deliveries ).contains( pizza );
75+
} )
76+
);
77+
}
78+
79+
@Test
80+
public void testQueryWithWhereClauseContainingInOperatorListOfTwoValues(VertxTestContext context) {
81+
test( context, getMutinySessionFactory().withTransaction( s -> s
82+
.createQuery( "from Delivery d where d.locationId in ?1", Delivery.class )
83+
.setParameter( 1, List.of( verbania, hallein ) )
84+
.getResultList()
85+
).invoke( deliveries -> {
86+
assertThat( deliveries ).hasSize( 2 );
87+
assertThat( deliveries ).contains( pizza );
88+
assertThat( deliveries ).contains( schnitzel );
89+
} )
90+
);
91+
}
92+
93+
@Test
94+
public void testQueryWithWhereClauseContainingInOperatorAndTwoParameters(VertxTestContext context) {
95+
test( context, getMutinySessionFactory().withTransaction( s -> s
96+
.createQuery( "from Delivery d where d.locationId in (?1,?2)", Delivery.class )
97+
.setParameter( 1, verbania )
98+
.setParameter( 2, hallein )
99+
.getResultList()
100+
).invoke( deliveries -> {
101+
assertThat( deliveries ).hasSize( 2 );
102+
assertThat( deliveries ).contains( pizza );
103+
assertThat( deliveries ).contains( schnitzel );
104+
} )
105+
);
106+
}
107+
52108
@Test
53109
public void testFindMultipleIds(VertxTestContext context) {
54110
test( context, getMutinySessionFactory().withTransaction( s -> s.find( Delivery.class, verbania, hallein ) )

0 commit comments

Comments
 (0)