Spring Boot中JPA如何实现按日期合计

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名  

 

posted @ 2017-02-23 15:57  栖息之鹰  阅读(861)  评论(0)    收藏  举报