Java 如何在@Query注释中将方法参数用作纯文本
在JPA存储库中,我需要执行本机查询,在本机查询中,我需要能够按列排序。我希望这类的方向由这个方法的一个参数决定 下面是我想写但不起作用的代码 @存储库 接口StudentRepository扩展了JpaRepository{ @质疑 值=按学生id:sortOrder从学生订单中查看LCT* 页findAllByKeyword@ParamsortOrder字符串排序器,可分页; } 所以排序器可以是ASC或DSC。试试看Java 如何在@Query注释中将方法参数用作纯文本,java,spring,jpa,Java,Spring,Jpa,在JPA存储库中,我需要执行本机查询,在本机查询中,我需要能够按列排序。我希望这类的方向由这个方法的一个参数决定 下面是我想写但不起作用的代码 @存储库 接口StudentRepository扩展了JpaRepository{ @质疑 值=按学生id:sortOrder从学生订单中查看LCT* 页findAllByKeyword@ParamsortOrder字符串排序器,可分页; } 所以排序器可以是ASC或DSC。试试看 @Query("SELECT c FROM student c ORDE
@Query("SELECT c FROM student c ORDER BY c.student_id :sortOrder")
试一试
这里的关键是需要告诉JPA nativeQuery和Pageble。您可以指定为@query的参数 例如:
@Query(value = "SELECT * FROM USERS WHERE LASTNAME = ?1 ORDER BY ?#{#pageable}", nativeQuery = true)
Page<User> findByLastname(String lastname, Pageable pageable);
这里的关键是需要告诉JPA nativeQuery和Pageble。您可以指定为@query的参数 例如:
@Query(value = "SELECT * FROM USERS WHERE LASTNAME = ?1 ORDER BY ?#{#pageable}", nativeQuery = true)
Page<User> findByLastname(String lastname, Pageable pageable);
我不能在这里使用pageable进行排序。我在问题中提供的查询是我当前问题的简化版本。我的查询包含子查询、联接和distinct关键字。我需要以某种方式使用参数并手动构造查询字符串。我不能在这里使用pageable进行排序。我在问题中提供的查询是我当前问题的简化版本。我的查询包含子查询、联接和distinct关键字。我需要以某种方式使用一个参数并手动构造查询字符串。我在问题中提出的查询是我当前问题的过度简化版本。我需要放在那里的实际查询包含子查询和不同的关键字。它类似于从student.id上的SELECT DISTINCT中选择*,从student.student\u id=course.student\u id WHERE student.student\u id::文本类似“%:str%”或course.course\u id::文本类似“%:str%”作为S ORDER BY:sortCol:sortOrder。我不确定这是否仍然适用。我在问题中提出的问题是我目前问题的过度简化版本。我需要放在那里的实际查询包含子查询和不同的关键字。它类似于从student.id上的SELECT DISTINCT中选择*,从student.student\u id=course.student\u id WHERE student.student\u id::文本类似“%:str%”或course.course\u id::文本类似“%:str%”作为S ORDER BY:sortCol:sortOrder。我不确定这是否仍然适用。