2016-07-31 51 views
0

我需要按最新發布排序主題。有人可以幫我用這個休眠查詢:休眠錯誤:意外的AST節點

unexpected AST node: query 
[SELECT t 
FROM Topic t 
ORDER BY 
(SELECT MAX(p.createdOn) FROM Post p WHERE p.topic.id = t.id) 
DESC] 

這裏有什麼問題?

回答

1
SELECT topic FROM Post ORDER BY createdOn 
+0

這個想法幫助 - 從帖子表中取出數據而不是主題 - 然後只取出所有數據 - 從hibernate獲取所有連接併爲.get方法提供對象。然後按posts.topic分組。 – Dancyg

+0

我很高興它幫助:-) – Khodabakhsh

0

我認爲這JPQL查詢應該工作

select t.id, t.description, max(p.createdOn) as maxCreationTime 
from Topic t inner join t.posts p 
group by t.id, t.description 
order by maxCreationTime 

如果要包括那些沒有相關的帖子主題。

select t.id, t.description, max(p.createdOn) as maxCreationTime 
from Topic t left join t.posts p 
group by t.id, t.description 
order by maxCreationTime 

你必須爲了使聚合功能max工作,指定從主題選定字段。希望這可以幫助。