在 JPA Query 中,我可以通过属性的顺序和 DESC/ASC 顺序作为方法签名中的参数传递吗?

Eva*_*HZY 7 java mysql spring jpql spring-data-jpa

我正在使用 spring 框架和工作存储库级别的实现。

我有一堂课:

@Repository public interface MyClassReadRepository extends ReadRepository<MyClass, Integer>

在这个类中有一个看起来像这样的方法:

@Query("SELECT a FROM MyClass a WHERE a.type IN :myType ORDER BY :someProperty :someOrder") Page<MyClass> findByTypeAndOrder(@Param("myType") List<MyType> myType, @Param("someProperty")String someProperty, @Param("someOrder")String someOrder, Pageable pageable)

但显然查询结构是错误的:“:someProperty”应该是一个标识符......

我的问题是:如何在上面的示例中传递 order 和 sort 参数?

提前致谢!

Tan*_*kar 4

使用:

PageRequest(page, size, direction, properties)
Run Code Online (Sandbox Code Playgroud)

创建一个应用了排序参数的新 PageRequest。参数:

page:从零开始的页面索引。(如 5 或 10 等)

size:要返回的页面的大小。(如 50 或 100 等)

Direction:指定排序的方向,可以为空。(如排序方向.ASC)

properties:排序依据的属性,不能为 null 或为空。(如“我的专栏名称”)