JPA CriteriaBuilder - Cómo usar el operador de comparación "IN"

¿Puede ayudarme a convertir los siguientes códigos para usar el operador "in" del generador de criterios? Necesito filtrar usando la lista / matriz de nombres de usuario usando "in".

También intenté buscar usando JPA CriteriaBuilder - método "in" pero no puedo encontrar un buen resultado. Así que realmente agradecería también si me puede dar URL de referencia para este tema. Gracias

Aquí están mis códigos:

//usersList is a list of User that I need to put inside IN operator 

CriteriaBuilder builder = getJpaTemplate().getEntityManagerFactory().getCriteriaBuilder();
CriteriaQuery<ScheduleRequest> criteria = builder.createQuery(ScheduleRequest.class);

Root<ScheduleRequest> scheduleRequest = criteria.from(ScheduleRequest.class);
criteria = criteria.select(scheduleRequest);

List<Predicate> params = new ArrayList<Predicate>();

List<ParameterExpression<String>> usersIdsParamList = new ArrayList<ParameterExpression<String>>();

for (int i = 0; i < usersList.size(); i++) {
ParameterExpression<String> usersIdsParam = builder.parameter(String.class);
params.add(builder.equal(scheduleRequest.get("createdBy"), usersIdsParam) );
usersIdsParamList.add(usersIdsParam);
}

criteria = criteria.where(params.toArray(new Predicate[0]));

TypedQuery<ScheduleRequest> query = getJpaTemplate().getEntityManagerFactory().createEntityManager().createQuery(criteria);

for (int i = 0; i < usersList.size(); i++) {
query.setParameter(usersIdsParamList.get(i), usersList.get(i).getUsername());
}

List<ScheduleRequest> scheduleRequestList = query.getResultList();

La Cadena de consulta interna se convierte a continuación, por lo que no obtengo los registros creados por los dos usuarios, ya que está usando "Y".

select generatedAlias0 from ScheduleRequest as generatedAlias0 where ( generatedAlias0.createdBy=:param0 ) and ( generatedAlias0.createdBy=:param1 ) order by generatedAlias0.trackingId asc 

Respuestas a la pregunta(4)

Su respuesta a la pregunta