如何通过运行时在HQL中设置order by子句?

时间:2012-06-12 12:01:07

标签: hibernate hql

有没有办法按运行时间在HQL中设置order by子句。即select obj from Example1 order by <Here my column name and asc or desc这两件事想要在运行时设置&gt;。

任何适当的解决方案......?我试过添加两个?但它不起作用。通过用字符串替换它可以工作....但是HQL ....还有其他方法吗?

2 个答案:

答案 0 :(得分:2)

您需要的是Criteria API:http://docs.jboss.org/hibernate/orm/3.2/api/org/hibernate/Criteria.html

e.g:

List cats = session.createCriteria(Cat.class)
 .add( Restrictions.like("name", "Iz%") )
 .add( Restrictions.gt( "weight", new Float(minWeight) ) )
 .addOrder( Order.asc("age") )
 .list();

答案 1 :(得分:2)

唯一的方法是连接适当的字段。如果您不喜欢它,请使用the Criteria API,它旨在动态生成查询。