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]
這裏有什麼問題?
我需要按最新發布排序主題。有人可以幫我用這個休眠查詢:休眠錯誤:意外的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]
這裏有什麼問題?
SELECT topic FROM Post ORDER BY createdOn
我認爲這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
工作,指定從主題選定字段。希望這可以幫助。
這個想法幫助 - 從帖子表中取出數據而不是主題 - 然後只取出所有數據 - 從hibernate獲取所有連接併爲.get方法提供對象。然後按posts.topic分組。 – Dancyg
我很高興它幫助:-) – Khodabakhsh