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名