Skip to content

Commit cacd1a7

Browse files
committed
HHH-14119 test showing parameter padding works with criteria literals
1 parent 11139c2 commit cacd1a7

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

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

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
@Setting(name = AvailableSettings.USE_SQL_COMMENTS, value = "true"),
3939
@Setting(name = AvailableSettings.IN_CLAUSE_PARAMETER_PADDING, value = "true"),
4040
@Setting(name = AvailableSettings.DIALECT_NATIVE_PARAM_MARKERS, value = "false"),
41+
@Setting(name = AvailableSettings.CRITERIA_VALUE_HANDLING_MODE, value = "bind")
4142
},
4243
useCollectingStatementInspector = true
4344
)
@@ -103,6 +104,30 @@ public void testInClauseParameterPaddingForExpressions(EntityManagerFactoryScope
103104
assertTrue( statementInspector.getSqlQueries().get( 0 ).endsWith( "in (d1_0.id,d1_0.id,d1_0.id)" ) );
104105
}
105106

107+
108+
@Test @JiraKey("HHH-14119")
109+
public void testInClauseParameterBindingPadding(EntityManagerFactoryScope scope) {
110+
final SQLStatementInspector statementInspector = scope.getCollectingStatementInspector();
111+
statementInspector.clear();
112+
113+
scope.inTransaction( entityManager -> {
114+
CriteriaBuilder cb = entityManager.getCriteriaBuilder();
115+
CriteriaQuery<Integer> query = cb.createQuery( Integer.class );
116+
Root<Document> document = query.from( Document.class );
117+
118+
query
119+
.select( document.get( "id" ) )
120+
.where( document.get( "id" ).in( Arrays.asList( 1, 2, 3, 4, 5 ) ) );
121+
122+
123+
List<Integer> ids = entityManager.createQuery( query ).getResultList();
124+
assertEquals( 1, ids.size() );
125+
} );
126+
127+
assertTrue( statementInspector.getSqlQueries().get( 0 ).endsWith( "in (?,?,?,?,?,?,?,?)" ) );
128+
129+
}
130+
106131
@Entity(name = "Document")
107132
public static class Document {
108133

0 commit comments

Comments
 (0)