我需要应用程序中的最大第一条记录,
我正在尝试使用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