JPA & Criteria API - выбор только определенных столбцов
Я хотел бы выбрать только определенные столбцы (напр.SELECT a FROM b
). У меня есть общий DAO, и я придумал:
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();
}
И ошибка:
The method select(Selection<? extends T>) in the type CriteriaQuery<T> is not applicable for the arguments (Path<Object>)
, Как я должен изменить это? Я хочу получить типT
объект, который имеет толькоID
а такжеVERSION
поля, а все остальныеnull
.
ТипT
продолжаетсяAbstractEntity
который имеет эти 2 поля.
entityClazz
являетсяT.class
.