出错的代码如下:

@Query(value = "select sum(minutes) as minutes from t_zz_records where year(date)>=:min and year(date)<=:max group by date order by minutes desc limit 0, 1")
public float getMaxSumOfDateInYear(@Param(value = "min") int minYear, @Param(value = "max") int maxYear);

在MySQL执行报错:

antlr.NoViableAltException: unexpected token: limit

原因是limit属于MySQL特有的特性,而@Query默认只接受通用SQL。

解决方法是简单地加上nativeQuery = true即可。如下:

@Query(value = "select sum(minutes) as minutes from t_zz_records where year(date)>=:min and year(date)<=:max group by date order by minutes desc limit 0, 1", nativeQuery = true)
public float getMaxSumOfDateInYear(@Param(value = "min") int minYear, @Param(value = "max") int maxYear);

Logo

更多推荐