2016-09-09 11 views
1

我試圖從數據庫中使用下面的hibernate查詢錯誤:org.hibernate.hql.internal.ast.ErrorCounter - 行1:45:意外標記:從表中提取最後一條記錄的DESC

//fetch the last data from a field in a table 
Session session = _sessionFactory.getCurrentSession(); 
Query query = session.createQuery("select t.currentfile from file t DESC"); 
query.setMaxResults(1); 
List<Object[]> rows = query.list(); 

for (Object[] row: rows) { 
    System.out.println(" ------------------- "); 
    System.out.println("current file: " + row[0]); 
} 

與上面的HQL我收到此錯誤:

ERROR: org.hibernate.hql.internal.ast.ErrorCounter - line 1:45: unexpected token 
: DESC 

什麼地方出錯了?

回答

1

降序('DESC'或'desc')和升序('ASC'或'asc')只能與order by子句一起使用。

所以,你的代碼必須看起來像:

Query query = session.createQuery("select t.currentfile from file t 
    ORDER BY t.time_created DESC"); 

time_created僅僅是因爲你還沒有加入哪些領域你有你的表或實例字段你被降序排序)

+0

這會給我當前文件列中的最新數據 – Francis

+0

好吧,我有這個問題無法解決路徑t.currentfile。意外令牌t – Francis

+0

不能轉換爲[Ljava.lang.Object; – Francis

0

您的查詢是錯誤的。您必須在DESC之前放置ORDER BY yourSortAttribute。

+0

您要排序的實體的字段。 DESC的意思是降序。如果你不希望結果被排序,只需刪除DESC。 –

+0

session.createQuery(「通過t DESC從文件順序中選擇t.currentfile」); – Francis

+0

is dat ok ..... – Francis

相關問題