Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在@Query注释中将方法参数用作纯文本_Java_Spring_Jpa - Fatal编程技术网

Java 如何在@Query注释中将方法参数用作纯文本

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

在JPA存储库中,我需要执行本机查询,在本机查询中,我需要能够按列排序。我希望这类的方向由这个方法的一个参数决定

下面是我想写但不起作用的代码

@存储库 接口StudentRepository扩展了JpaRepository{ @质疑 值=按学生id:sortOrder从学生订单中查看LCT* 页findAllByKeyword@ParamsortOrder字符串排序器,可分页; } 所以排序器可以是ASC或DSC。

试试看

@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。我不确定这是否仍然适用。