相关疑难解决方法(0)

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();
}
Run Code Online (Sandbox Code Playgroud)

错误是: The method select(Selection<? extends T>) in the type CriteriaQuery<T> is not applicable for the arguments (Path<Object>).我该怎么改变?我想得到一个T只有IDVERSION字段的类型对象,而其他所有的都是null.

类型Textends AbstractEntity包含这两个字段.

entityClazzT.class.

java hibernate jpa criteria-api

59
推荐指数
2
解决办法
10万
查看次数

标签 统计

criteria-api ×1

hibernate ×1

java ×1

jpa ×1