HQL中按字符串参数的自定义订单

Cic*_*chy 6 hibernate hql

我有一个像这样的HQL查询:

Query query = session.createQuery("from User as user where user.joined!=null order by user.joined desc");
Run Code Online (Sandbox Code Playgroud)

如何设置变量User属性作为查询的排序顺序?我的解决方案:

String order = "user.joined";
Query query = session.createQuery("from User as user where user.joined!=null order by :order desc").setString("order", order);
Run Code Online (Sandbox Code Playgroud)

没有给出有序的查询结果。

Mat*_*all 5

使用条件查询

List<User> users = session.createCriteria(User.class)
    .add(Restrictions.isNotNull("joined"))
    .addOrder(Order.desc(order))
    .list();
Run Code Online (Sandbox Code Playgroud)

或者,使用 HQL:

Query query = session.createQuery("from User as user where user.joined!=null order by user." + order + " desc");
Run Code Online (Sandbox Code Playgroud)