2012-01-02 61 views
1

hibernate中有沒有什麼方法可以從羣組中獲得最大的記錄。 在我的表中,我有三列(error_id,transaction_id,phone),我想在transaction_id上應用order by子句,然後在電話基礎上創建組,然後想要從每個組獲得最高記錄。休眠中最大的n個羣體

對此類型或查詢的任何建議.... Thanx提前。

+0

您可以隨時回覆HQL以完成SQL可爲您做的任何工作 – 2012-01-02 06:49:39

回答

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)); 
    } 
} 

這是一個漫長的過程,但它的工作。如果任何人知道更好的方式來獲得這樣的記錄,那麼請張貼您的答案。