JPA 和标准 API - 仅选择特定列
2022-08-31 12:15:34
我只想选择特定的列(例如)。我有一个通用的DAO,我想出的是:SELECT a FROM b
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
具有这 2 个字段的类型扩展。T
AbstractEntity
entityClazz
是。T.class