2
我有以下表/型號:的Grails:標準的使用結果+預測作爲原始表的過濾器
class Post {
int id;
String comment;
static belongsTo = [category_id:Category];
}
我希望創建一個查詢,可以過濾掉最後Post
(最高id
)每Category
。我想要結果在List<Post>
的形式。
換句話說(我相信)在SQL查詢將如下所示:
SELECT *
FROM
Post AS source
JOIN (
SELECT MAX(id) AS id, category_id
FROM Post
GROUP BY category_id
) AS filter
ON source.id = filter.id;
如果我理解正確的話,第一步是使用HibernateCriteriaBuilder
:
def c = Post.createCriteria();
def results = c.list {
projections {
groupProperty("category_id", "myid")
max("id", "version")
}
}
所以我問題是兩部分:
- 我在正確的軌道上嗎?
如何使用結果對象獲取
List<Post>
數組?(喜歡的東西:
def latest = Post.FindAllByXXX(result);
)
完美, 謝謝! – Chopo87 2013-02-25 12:44:45