相关疑难解决方法(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万
查看次数

在jpa条件查询中选择特定日期格式

我想在我们使用的多选jpa条件查询中选择特定格式的日期

select to_char(tn.dbdate,'yyyy-MM-dd') from transaction tn 
在oracle.

我可以使用

query.multiselect(cb.function("TO_CHAR",String.class,transaction.get("dbdate")) );

但这会以数据库格式返回日期,即

Wed Apr 2 12:20:50 2014

但是如何以特定的日期格式获取此信息

'yyyy-MM-dd'

jpa date criteria-api

1
推荐指数
1
解决办法
1万
查看次数

标签 统计

criteria-api ×2

jpa ×2

date ×1

hibernate ×1

java ×1