Finally, I could fix the issue by using createTupleQuery():
val criteriaBuilder = entityManager.criteriaBuilder
val criteriaQuery = criteriaBuilder.createTupleQuery()
val root = criteriaQuery.from(User::class.java)
val predicate = spec.toPredicate(root, criteriaBuilder.createQuery(), criteriaBuilder)
criteriaQuery.where(predicate)
val selections = listOf("userName", "displayName").map{
root.get(it)
}
criteriaQuery.multiselect(*selections.toTypedArray())
val query = entityManager.createQuery(criteriaQuery)
val resultList = query.resultList