我有以下数据模型:与订单有OneToMany关系的客户。
@Entity
public class Customer{
...
private Long id;
@OneToMany
private Collection<Order> orders;
...
}
@Entity
public class Order{
...
private Long id;
private Date orderDate;
@ManyToOne
private Customer customer;
...
}
我想根据最新订单日期列出前10名客户。因此,在最近日期下订单的客户应该出现在列表顶部,依此类推。
是否可以使用单个JPQL或Criteria API执行此操作?
答案 0 :(得分:0)
在HQL中:
Query query = session.createQuery("select Customer c JOIN c.orders order ORDER BY order.orderDate DESC")
query.setMaxResults(10);
关于你所写的内容和代码的一些建议:
limit
,rownum
,top
等。使用HQL / Criteria,您不必担心这一点。