【发布时间】:2013-02-09 02:34:32
【问题描述】:
我有以下表格/模型:
class Post {
int id;
String comment;
static belongsTo = [category_id:Category];
}
我希望创建一个查询,可以根据Category 过滤掉最后一个Post(最高id)。我想要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);)
【问题讨论】:
标签: grails hibernate-criteria createcriteria