我需要为后端应用程序检索过去6个月的订单。
@Query("Select ord From orders ord WHERE ord.created_date <= (current_date - INTERVAL '6 months')")
List<Order> findOrders();
unexpected token: INTERVAL near line 1, column 70 [Select ord From orders ord WHERE ord.created_date <= (current_date INTERVAL '6 months')
经过研究,我发现JPA不支持INTERVAL定义。是否有解决此特定功能的方法?
在这种情况下,请使用JPA提供的功能,其中不需要本机sql代码。
List<Order> findALLByCreatedDateBefore(Date fromDate);
并在Java端调用它
public void findOrders() {
date = setMonthToJavaUtilDate(new Date(), -6);
yourRepository.findOrders(fromDate)
//your logic...
}
private Date setMonthToJavaUtilDate(Date date, int month) {
Calendar now = Calendar.getInstance();
now.setTime(date);
now.add(Calendar.MONTH, month);
return now.getTime();
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句