使用Spring Data JPA从MS SQL中选择前1条记录

Vij*_*jai 1 java spring-data-jpa

我正在使用以下@Query注释从MS-SQL获取前几条记录。显示错误,提示“ <运算符>或预期的AS ...”

   @Query("SELECT Top 1 * FROM NEVS010_VEH_ACTV_COMMAND C WHERE C.EVS014_VIN = :vin ORDER BY C.EVS010_CREATE_S DESC")
    CommandStatus findCommandStatusByVinOrderByCreatedTimestampDesc(@Param("vin") String vin);
Run Code Online (Sandbox Code Playgroud)

小智 5

您也可以使用了findFirst和findTop如提到的文档

findFirstByVinOrderByCreatedTimestampDesc(String vin)
Run Code Online (Sandbox Code Playgroud)


Vij*_*jai 4

由于查询是 SQL(而不是 JPQL),因此需要nativeQuery = true在注释中设置:

@Query(nativeQuery = true, value = "SELECT Top 1 * FROM NEVS010_VEH_ACTV_COMMAND C WHERE C.EVS014_VIN = :vin ORDER BY C.EVS010_CREATE_S DESC")
    CommandStatus findCommandStatusByVinOrderByCreatedTimestampDesc(@Param("vin") String vin);
Run Code Online (Sandbox Code Playgroud)