我需要应用程序中的最大第一条记录,
我正在尝试使用Spring Boot JPA和MYSQL查询,

 @Query("select d from Table where d.StatusType=:StatusType and d.tableNumber< :cuurentTableNumber ORDER BY d.tableNumber DESC  LIMIT 1",nativeQuery = true)
    Draw findTop1ByOrderByDrawNumberDesc(@Param("StatusType") Table.StatusType StatusType, @Param("tableNumber")int cuurentTableNumber);


@Query("select d from Table d where d.StatusType=:StatusTypeand d.tableNumber<:cuurentTableNumber")
    Draw findTop1ByOrderByDrawNumberDesc(@Param("StatusType") Table.StatusType StatusType, @Param("tableNumber")int cuurentTableNumber , Pageable pageable);


还有其他试验
但是很多次都无法正常工作,这给了我一个发现多个记录的错误。而且我只需要一条记录,该记录是最大但小于当前数目。

LIMIT不适用于JPA,因此不能使用该限制。

有谁知道如何实现这一目标。

最佳答案

我是通过以下方式实现的,

@Query("select d from Table d where " +
        "d.tableNumber <> :tableNumber " +
        "and (" +
        "(d.statusType = :statusType) " +
        ") ORDER BY d.TableNumber desc")
Iterable<Table> findPreviousNumber(@Param("tableNumber") int tableNumber,
                                @Param("statusType") statusType closeStatusType);


仍然会调查它为什么不适用于findFirst / Top

10-08 20:19