Spring 引导@Query:按命名参数排序
Spring Boot @Query: Order by named parameter
我喜欢我的 REST-Api 端点可以按不同的模型属性进行排序。我用谷歌搜索了很多 solutions,但其中 none 符合我的要求。
我喜欢在我的 PagingAndSortingRepository
界面中有如下内容:
@Query(value = "SELECT v FROM vwFact v WHERE v.applicationId like %:applicationId% " +
"and (v.mdName01 like :mdName% or v.mdName02 like :mdName% or v.mdName03 like :mdName% or v.mdName04 like :mdName%) " +
"ORDER BY :sortParam :sortDir"
)
Page<vwFact> findAllByApplicationIdAndMdName(
@Param(value = "applicationId") String applicationId,
@Param(value = "mdName") String mdName,
@Param(value = "sortParam") String sortParam,
@Param(value = "sortDir") String sortDir,
Pageable pageable
);
是否有机会实现它,或者我必须以其他方式实现它。你会推荐什么?
Pageable 有一个选项可以指定如何对结果进行排序(包括方向和参数)。
PageRequest(int page, int size, Sort sort)
PageRequest(int page, int size, Sort.Direction direction, String... properties)
我喜欢我的 REST-Api 端点可以按不同的模型属性进行排序。我用谷歌搜索了很多 solutions,但其中 none 符合我的要求。
我喜欢在我的 PagingAndSortingRepository
界面中有如下内容:
@Query(value = "SELECT v FROM vwFact v WHERE v.applicationId like %:applicationId% " +
"and (v.mdName01 like :mdName% or v.mdName02 like :mdName% or v.mdName03 like :mdName% or v.mdName04 like :mdName%) " +
"ORDER BY :sortParam :sortDir"
)
Page<vwFact> findAllByApplicationIdAndMdName(
@Param(value = "applicationId") String applicationId,
@Param(value = "mdName") String mdName,
@Param(value = "sortParam") String sortParam,
@Param(value = "sortDir") String sortDir,
Pageable pageable
);
是否有机会实现它,或者我必须以其他方式实现它。你会推荐什么?
Pageable 有一个选项可以指定如何对结果进行排序(包括方向和参数)。
PageRequest(int page, int size, Sort sort)
PageRequest(int page, int size, Sort.Direction direction, String... properties)