J'aimerais sélectionner uniquement des colonnes spécifiques (ex. SELECT a FROM b
). J'ai un DAO générique et ce que j'ai trouvé est le suivant :
public List<T> getAll(boolean idAndVersionOnly) {
CriteriaBuilder builder = manager.getCriteriaBuilder();
CriteriaQuery<T> criteria = builder.createQuery(entityClazz);
Root<T> root = criteria.from(entityClazz);
if (idAndVersionOnly) {
criteria.select(root.get("ID").get("VERSION")); // HERE IS ERROR
} else {
criteria.select(root);
}
return manager.createQuery(criteria).getResultList();
}
Et l'erreur est : The method select(Selection<? extends T>) in the type CriteriaQuery<T> is not applicable for the arguments (Path<Object>)
. Comment puis-je changer cela ? Je veux obtenir un type T
qui n'a que des ID
y VERSION
et tous les autres sont des null
.
Type T
s'étend AbstractEntity
qui contient ces deux champs.
entityClazz
es T.class
.