java - 在 Spring @Query 中使用变量
问题描述
我在让我的变量在我的@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 排序的结果(这是传递的内容)。任何建议都会很棒。
解决方案
不幸的是,由于底层 JDBC 限制,您只能将参数传递给“条件”子句(如“where”)。
而不是考虑使用重载的 PageRequest "of" 方法。
public static PageRequest of(int page,
int size,
Sort.Direction direction,
String... properties)
推荐阅读
- django - 我怎样才能从我的模型预订中获取日期小于今天的所有数据我想显示客户的预订历史记录
- javascript - 从 Javascript 中的 API 验证图像的 URL
- python - 在 Numpy 数组上执行 Pandas 函数
- arrays - 当我尝试使用过滤器删除项目时,我得到 item.map 不是一个函数
- c# - 模拟单元测试异步任务设置返回 null
- mysql - 从 flask_mysqldb 导入 MySQL
- multithreading - 哈希和数组的推送和弹出操作是原子的和线程安全的吗?
- python - multiplication_table 函数打印传递给它的数字的结果
- javascript - WebRTC:连接成功,但回答对等方从未收到“跟踪”事件
- python - 在python中输入int:如何检查类型