hibernate order by association

前端 未结 2 1853
抹茶落季
抹茶落季 2021-02-07 14:44

I\'m using Hibernate 3.2, and using criteria to build a query. I\'d like to add and \"order by\" for a many-to-one association, but I don\'t see how that can be done. The Hiber

相关标签:
2条回答
  • 2021-02-07 15:21

    I was having the same issue and it can also be solved like this:

    Criteria criteria = super.getSession().createCriteria(WipDiscreteJob.class)
      .createAlias("assnName","a")
      .addOrder(Order.asc("a.propertyName"));
    

    createAlias lets you keep your criteria rooted on your original entity (WipDiscreteJob.class in this case) so that you can keep building your criteria up in case you needed it (for example, if you need a second order by property from you original entity).

    0 讨论(0)
  • 2021-02-07 15:31

    Ok, found the answer. I tried something that I didn't think would work, but to my surprise did. I was trying this:

    Criteria criteria = super.getSession().createCriteria(WipDiscreteJob.class);
    
    criteria.addOrder(Order.asc("assnName.propertyName"))
    

    but what actually worked was:

    Criteria criteria = super.getSession().createCriteria(WipDiscreteJob.class);
    Criteria assnCrit = criteria.createCriteria("assnName");
    
    assnCrit.addOrder(Order.asc("propertyName"));
    

    I had made the assumption that the addOrder() method was only usable on the main criteria and not on any association criteria.

    0 讨论(0)
提交回复
热议问题