有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何使用谓词生成器返回“Todays Orders”

我正在尝试构建一个谓词,其中返回一个基于订单类型的订单列表-例如TodaysOrders、AllOrders、PendingOrders、FailedOrders等

对于今天的订单,我只想返回带有今天日期的订单,而不是过去24小时内的预订

我尝试了下面的代码片段,它返回了过去的24小时

if (orderType == todaysOrders) { predicate = builder.greaterThanOrEqualTo(root.get(RECEIVED_DATE), LocalDateTime.now().minusDays(1));

我尝试了下面的代码段,结果为0,因为没有其他代码段的确切时间戳为LocalDateTime。现在()

if (orderType == todaysOrders) { predicate = builder.equal(root.get(RECEIVED_DATE), LocalDateTime.now();

有人知道我能做这件事的方法吗

Received_DATE是ordersRepository中的一列,类型为LocalDateTime


共 (1) 个答案

  1. # 1 楼答案

    必须使用LocalDate而不是LocalDateTime,然后调用

    if (orderType == todaysOrders) {
        predicate = builder.greaterThanOrEqualTo(root.get(RECEIVED_DATE), 
                    LocalDate.now().atStartOfDay());
    }