私は次のテーブル/モデルを持っています:
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")
}
}
だから私の質問は2つの部分です:
私は正しい方向に進んでいますか?
List<Post>
結果オブジェクトを使用して配列を取得するにはどうすればよいですか?(のようなもの
def latest = Post.FindAllByXXX(result);
:)