sqlStatementInterceptor.clear();
doInJPA( this::entityManagerFactory, entityManager -> {
CriteriaBuilder cb = entityManager.getCriteriaBuilder();
CriteriaQuery<Long> query = cb.createQuery( Long.class );
Root<Document> document = query.from( Document.class );
ParameterExpression<List> inClauseParams = cb.parameter( List.class, "ids" );
query
.select( document.get( "id" ) )
.where(
document.get( "id" ).in( inClauseParams )
);
List<Long> ids = entityManager.createQuery( query )
.setParameter(
"ids",
Arrays.asList(
1,
2,
3,
4,
5
)
)
.getResultList();
assertEquals( 1, ids.size() );
} );
assertTrue( sqlStatementInterceptor.getSqlQueries().get( 0 ).endsWith( "in (? , ? , ? , ? , ? , ? , ? , ?)" ) );