通过地图关联的休眠顺序

时间:2014-05-14 07:50:05

标签: java hibernate hql

我有一个类似于

的域类
public class User {
   ...

   @OneToMany
   @MapKeyEnumerated(EnumType.STRING)
   @JoinTable(
      name="user_result",
      joinColumns=@JoinColumn(name="user_id"),
      inverseJoinColumns=@JoinColumn(name="result_id")
   )
   @MapKeyColumn(name="step")
   public Map<EStep, Result> getResults() {
      return results;
   }

   ...
}

现在我正在尝试编写一个hql,其中列出了按键EStep.STEP_1的类Result的属性(例如得分)排序的所有用户。

甚至可以在hql中执行此类查询吗?

1 个答案:

答案 0 :(得分:1)

是的,HSQL是可能的。但也可以使用Criteria

Criteria c = session.createCriteria(Cat.class);
c.createAlias("mother.kind", "motherKind");
c.addOrder(Order.asc("motherKind.value"));
return c.list();

hsql by example by example

String hql = "from Survey p order by p.price asc";
Query query = session.createQuery(hql);
List results = query.list();