开发者

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

开发者 https://www.devze.com 2023-02-19 00:52 出处:网络
I have a method, which generates a JPA Criteria: private CriteriaQuery<ResultSetType> createQuery (ReportFilter reportFilter) {

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

精彩评论

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