【发布时间】:2015-06-24 14:09:39
【问题描述】:
我正在尝试使用相同的查询对我的表列进行排序,但是当我将该列作为参数传递给 ORDER BY 时,它会在我的列名之前和之后添加引号。如果你使用 ORDER BY 参数,列名必须写在引号之间,否则 MySQL 会忽略它。
要执行的示例或查询:
select * from app_user ORDER BY mobile_token ASC LIMIT 0 , 20
这是 hibernate 发送到 MySQL 的内容:
select * from app_user ORDER BY 'mobile_token' ASC LIMIT 0 , 20
Java 查询:
query = JPA.em().createNativeQuery("select * from app_user ORDER BY :column ASC LIMIT :init , :page",AppUser.class);
query.setParameter("column", column);
query.setParameter("init", pageNumber*pageSize);
query.setParameter("page", pageSize);
我可以通过以下方式更改 NativeQuery:
"select * from app_user ORDER BY "+column+" ASC LIMIT :init , :page"
但这将成为我的应用程序不安全。
【问题讨论】:
标签: java mysql hibernate sql-order-by