2014-04-07 76 views
0

您好我是ORM技術的新手所以,可以幫助您如何編寫hql或條件查詢以基於時間戳獲取最新記錄。 此處Eventdata域的屬性名稱將與下面提到的列名稱相同。 我有臺這樣的 EVENTDATA:如何編寫hql查詢或條件查詢來獲取基於時間戳的最新記錄

AccountId DeviceId timestamp Address 
fuel mdemo143 1389716109 Bangalore Road, Rajendra Nagar, Mysore, Karnataka 
fuel mdemo469 1389757662 Bharath International Travels, Diwan's Road 
fuel mdemo731 1390179714 Ring Road, Hebbalu, Mysore, 
fuel mdemo143 1390148225 Gandhinagar, Mysore 


fuel mdemo469 1389757682 Bharath International Travels, Diwan's Road 
fuel mdemo469 1389759662 Bharath International Travels, Diwan's Road 
fuel mdemo731 1390179714 Ring Road, Hebbalu, Mysore, 
fuel mdemo731 1390279714 Ring Road, Hebbalu, Mysore, 

我需要輸出表會象下面這樣:

AccountId DeviceId timestamp Address 

fuel mdemo143 1390148225 Sun, 19 Jan 2014 16:17:05 GMT Gandhinagar, Mysore 


fuel mdemo469 1389759662 Wed, 15 Jan 2014 04:21:02 GMT Bharath International Travels, Diwan's Road 
fuel mdemo731 1390279714 Tue, 21 Jan 2014 04:48:34 GMT Ring Road, Hebbalu, Mysore 

請幫我.Thanks提前

回答

1

考慮使用ORDER BYQuery#setMaxResults

東西沿着

queryString = "SELECT e FROM Eventdata e ... ORDER BY e.timestamp"; 

session.createQuery(queryString).setMaxResults(10); 

應該工作。

0

如果您想獲得基於timestamp你可以使用類似的記錄:

@SuppressWarnings("unchecked") 
public List<String> getData(Date d){ 
    Query query = em.createQuery("SELECT e FROM EventDate e WHERE e.timestamp > :d ORDER BY e.timestamp"); 
    query.setParameter("d", d); 
    List<String> queryResults = query.getResultList(); 
    return queryResults; 
} 

這將在指定後返回記錄timestamp