【发布时间】:2012-09-19 01:38:22
【问题描述】:
我只想选择特定的列(例如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 具有这两个字段。
entityClazz 是T.class。
【问题讨论】:
标签: java hibernate jpa criteria-api