请教hibernate的排序问题!!

拥抱java 2010-10-14 09:36:01
我现在用query对象执行hql语句进行查询,为什么我的hql语句order by不能跟问号?我想实现按我所传参数进行排序应该怎么写,本人新手,请多多指教!!
String hql = "select o from OriginalDataResultModel o where " +
"o.collecttimeObject between ? and ? and o.stid in(:stid) order by ? ?";
Query q = s.createQuery(hql);
q.setParameter(0,startDate);
q.setParameter(1,endDate);
q.setParameterList("stid",stidlist);
if(dir!=null){
q.setParameter(4, dir);
}
if(sort!=null){
q.setParameter(3, "o."+sort);
}
...全文
202 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
海的童话 2010-10-14
  • 打赏
  • 举报
回复
就用:name 干嘛用?
q.setXX("name",value);参数是什么类型调用相应的setXX()方法。
zn85600301 2010-10-14
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 lln_avaj 的回复:]

这个我知道啊 我传的就是实体类的属性名 应该是这样order by o.sort dir吗?不好使~~
[/Quote]
dir 的值没传吧
还有你可以把HQL 编译后的SQL 放到数据库工具调试下
顺便说下 o. 可以不加的 select o 也可以去掉
between and 还有 in 是十分消耗性能的
kerioz 2010-10-14
  • 打赏
  • 举报
回复
我也不知道到底错哪了 可以去网上搜下 这种多条件的语句建议使用craite语句 先查全部再使用add添加条件 真的 那个好用些 这个语句看了就郁闷 感觉吧 那个between和and之间有问题
拥抱java 2010-10-14
  • 打赏
  • 举报
回复
这个我知道啊 我传的就是实体类的属性名 应该是这样order by o.sort dir吗?不好使~~
kerioz 2010-10-14
  • 打赏
  • 举报
回复
hql语句orderby后面是不可以跟?的呢要排序的话可以这么做 比如说你要按类型还有很多其他的来排序 现在我们可以声明一个变量 String order hql语句里面这么写 ……orderby order;就好 至于order的值是什么就看你自己业务了 比如我们有个列表 里面是排序类型 按时间(time) 按类别(typr) 按序号(id)什么的这时候传过去的order就是 time type id了 还有一点记得 hql查询的对象不是数据库表的名字是你映射生成的实体类对象名
拥抱java 2010-10-14
  • 打赏
  • 举报
回复
直接赋值要怎么赋值呢?
final sort="o."+query.getSort();
final dir=query.getDir();
String hql = "select o from OriginalDataResultModel o where " +
"o.collecttimeObject between ? and ? and o.stid in(:stid) order by sort dir";
这样不行呀~~
打印出的sort和dir分别是o.stid和asc
不是0123
bean 2010-10-14
  • 打赏
  • 举报
回复
直接用一个变量吧,把你传进来的值赋给它
magong 2010-10-14
  • 打赏
  • 举报
回复
订正: sort和dir之间不要逗号
magong 2010-10-14
  • 打赏
  • 举报
回复
参数查询字符串中的参数不能是标识符,只能是值。
order by后直接写?肯定不行
解决方案两个:
String hql = "select o from OriginalDataResultModel o where " +
"o.collecttimeObject between ? and ? and o.stid in(:stid) order by " + query.getSort() + " , " + query.getDir();

先拼接好
②使用Hibernate Criteria API

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧