带有“间隔”的JPA Hibernate查询的问题

Eltomon

我需要为后端应用程序检索过去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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章