jpa Order子句中的Sping Boot 未知列“INNER.”

gorkyyrv  于 2023-01-31  发布在  其他
关注(0)|答案(1)|浏览(153)

我正在使用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内部工作。

2vuwiymt

2vuwiymt1#

我猜想Spring修改了您的查询,因为您使用Page作为返回类型。当您将原生查询与Page一起使用时,您应该添加一个countQuery,请参阅Spring文档。

相关问题