1. 用queryDsl方法
JPAQueryFactory.select(
Projections.fields(OrderCountByDayBean.class,
qOrder.amount.sum().as("amount"),
qOrder.payTime.year().as("year"),
qOrder.payTime.dayOfYear().as("dayOfYear")))
.from(qOrder).where(where)
.groupBy(qOrder.payTime.year(), qOrder.payTime.dayOfYear())
.orderBy(qOrder.payTime.year().asc(), qOrder.payTime.dayOfYear().asc())
.fetch();
*得到的结果是List<OrderCountByDayBean>
2. 用@Query方法
@Query("select new dto.OrderTotalDTO(sum(u.amount), date_format(u.payTime, '%Y-%m-%d')) from Order u where u.payTime >= ?1 group by date_format(u.payTime, '%Y-%m-%d')")
*这里类似sql文,但是有所不同,比如from的不是table名字,而是model名