首页 > 解决方案 > 如何使用 JPA 规范动态查询返回自定义结果对象?

问题描述

我想返回不是 ENTITY 而是统计数据的 CustomResultObject,如何将它与 JPA 规范动态查询一起使用?示例代码如下所示:

Specification<CustomResultObject> spec = new Specification<CustomResultObject>() {  
    public Predicate toPredicate(Root<UserModel> root,  
            CriteriaQuery<?> query, CriteriaBuilder cb) {  
        Predicate p1 = cb.like(root.get("name").as(String.class), "%"+um.getName()+"%");  
        Predicate p2 = cb.equal(root.get("uuid").as(Integer.class), um.getUuid());  
        Predicate p3 = cb.gt(root.get("age").as(Integer.class), um.getAge());  
        query.where(cb.and(p3,cb.or(p1,p2)));  
        query.orderBy(cb.desc(root.get("uuid").as(Integer.class)));  
          
        return query.getRestriction();  
    }  
};

标签: jpaspecifications

解决方案


推荐阅读