}
if (StringUtils.hasText(role)) {
queryString += queryString.indexOf("WHERE") < 0 ? " WHERE " : " AND ";
queryString += " :role IN ELEMENTS(u.roles)";
}
Query query = entityManager.createQuery(queryString);
query.setFirstResult(offset > 0 ? offset : 0);
query.setMaxResults(number > 0 ? number : 0);
if (StringUtils.hasText(name)) query.setParameter("name", name + "%");
if (StringUtils.hasText(username)) query.setParameter("username", username + "%");
if (StringUtils.hasText(role)) query.setParameter("role", role);
return query.getResultList();
}