在JPA存储库中,我需要执行本机查询,并且在此本机查询中,我需要能够按列进行排序。我希望这种方向由该方法的参数之一确定。
这是我要编写的代码,但是不起作用。
@Repository
interface StudentRepository extends JpaRepository<Student, UUID> {
@Query(
value = "SEELCT * FROM student ORDER BY student_id :sortOrder"
)
Page<Customer> findAllByKeyword(@Param("sortOrder") String sortOrder, Pageable pageable);
}
因此sortOrder
可以是ASC
或DSC
。
答案 0 :(得分:0)
尝试
@Query("SELECT c FROM student c ORDER BY c.student_id :sortOrder")
答案 1 :(得分:0)
这里的关键是需要将JPA告诉为nativeQuery
和Pageble
。您可以将@query指定为参数
示例:
@Query(value = "SELECT * FROM USERS WHERE LASTNAME = ?1 ORDER BY ?#{#pageable}", nativeQuery = true)
Page<User> findByLastname(String lastname, Pageable pageable);