开发者

Criteria API: same query, different resultset types (constructor expressions)

I have a method, which generates a JPA Criteria:

private CriteriaQuery<ResultSetType> createQuery (ReportFilter reportFilter) {
    List<Predicate> criteria = new ArrayList<Predicate>();
    CriteriaBuilder cb = em.getCriteriaBuilder();
    CriteriaQuery<ResultSetType> c = cb.crea开发者_如何学JAVAteQuery(ResultSetType.class);
    ...
    c.multiselect(...);
    ...
    return c;
}

Now I want to create several queries with different Constructor Expressions (ResultSetType).

What would be the most elegant solution for that? The argument Type is always the same (ReportFilter), but for Different Constructor Expressions (ResultSetType) I want to create a different selections c.multiselect(...).

Any suggestions?

BR, Reen


private <T> CriteriaQuery<T> genericCriteria(ReportFilter reportFilter, Class<T> clazz) {
    CriteriaBuilder cb = em.getCriteriaBuilder();
    CriteriaQuery<T> c = cb.createQuery(clazz);
    ....
    if (clazz.equals(ResultSetType.class)) {
        c.multiselect(...);
    } else {
    }
    ...
    return c;
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜