需求的sql 语句时

select count(*) as count2,userId as userId FROM day GROUP BY userId

代码

        CriteriaBuilder cb = this.getEntityManager().getCriteriaBuilder();
        CriteriaQuery<Group2> cq = cb.createQuery(Group2.class);
        Root<DayEntity> day = cq.from(DayEntity.class);
        
        cq.multiselect(
                day.get("userId").alias("userId"), 
                cb.count(day).alias("count2")
        )
        .groupBy(day.get("userId"));

        List<Group2> list = this.getEntityManager().createQuery(cq).getResultList();
        log.info("list={}", list);
        for (PassStatisticsDayGroup2 object : list) {
            log.info("Object={}", object);
        }

实体类

@Data
public class Group2 implements Serializable {
    /**
     * 用户id;
     */
    private String userId;

    private Long count2;

    public Group2(String userId, Long count2) {
        this.userId = userId;
        this.count2 = count2;
    }
}

@Data
public class DayEntity implements Serializable {
    /**
     * 用户id;
     */
    private String userId;

    private String name;
}
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐