我正在使用SpringDataJPA从MySQL数据库获取数据。我在存储库中用@Query来标注这个函数
@Query(value = "SELECT * FROM Treatments INNER JOIN Animals ON Treatments.animal_id = Animals.animal_id WHERE Animals.owner_id = ?1 AND Treatments.enddate > curdate()", nativeQuery = true)
Page<Treatments> findAll(@Param("ownerId") Optional<Owner> owner, Pageable pageable);
Spring生成了SQL,然后添加了order by INNER.startdate asc limit ?
,然后抛出了这个错误,为什么会这样呢?,我试着自己添加了一个orderby子句,但是它还是会添加自己的orderby子句,然后抛出这个错误,这个查询在MySql内部工作。
1条答案
按热度按时间2vuwiymt1#
我猜想Spring修改了您的查询,因为您使用
Page
作为返回类型。当您将原生查询与Page
一起使用时,您应该添加一个countQuery
,请参阅Spring文档。