hibernate中每个组的最大n组

时间:2012-01-02 06:46:27

标签: java hibernate

hibernate中是否有任何方法可以从组中获得最佳记录。 在我的表中我有三列(error_id,transaction_id,phone)我想在transaction_id上应用order by子句然后在电话的基础上创建组,然后想要从每个组获得最高记录。

对此类型或查询的任何建议.... 提前完成。

1 个答案:

答案 0 :(得分:0)

我从搜索中得到了答案。

String msisdnQueryString = "SELECT DISTINCT table.phone FROM TABLE_NAME table";
Query msisdnQueryObject = session.createQuery(msisdnQueryString);
List msisdnList = msisdnQueryObject.list();

List<Long> transactionList = new ArrayList<Long>();
for(Object object : msisdnList){
    Long msisdn = Long.parseLong(object.toString());
    String transactionQueryString = "SELECT table.transactionId FROM TABLE_NAME table WHERE table.phone = "+msisdn+" ORDER BY table.transactionId DESC";
    Query transactionQueryObject = session.createQuery(transactionQueryString);
    transactionQueryObject.setFirstResult(0);
    transactionQueryObject.setMaxResults(1);
    List transactions =transactionQueryObject.list();
    if(transactions.size() > 0){
    transactionList.add((Long)transactions.get(0));
    }
}

这是一个漫长的过程,但它正在发挥作用。如果有人知道获得此类记录的更好方法,请发表您的答案。