在Spring @Query中使用变量

时间:2019-03-05 19:00:28

标签: java spring

我在让变量在@Query中工作时遇到问题。下面是代码

@Query("SELECT new User(userId, userEmail, userForename, userSurname, userMiddleName) "
        + "FROM User "
        + "ORDER BY :orderBy DESC")
public List<User> findAllBy(@Param("orderBy") String orderBy);

我知道我想要的变量已正确传递。目前,这只是返回userId排序的所有结果。如果我对要传递给此函数的值进行硬编码,那么它将正确返回userEmail排序的结果(即传递的结果)。任何建议都会很棒。

1 个答案:

答案 0 :(得分:1)

不幸的是,由于底层的JDBC限制,您只能将参数传递给“条件”子句(如“ where”)。

与其考虑使用overloaded PageRequest "of" method

public static PageRequest of(int page,
                         int size,
                         Sort.Direction direction,
                         String... properties)