gpt4 book ai didi

Hibernate child 计数标准

转载 作者:行者123 更新时间:2023-12-02 17:54:07 26 4
gpt4 key购买 nike

我有 parent / child 关系:newsItem 1-* 评论。

如何使用一个 Criteria 查询选择新闻项目列表以及每个新闻项目的评论计数?

我想做这样的事情:

select news_item.*, count(comment.id) from news_item left join comment on comment.news_item_id = news_item.id group by news_item.id

结果应该是 Object[2] { newsItem, int } 的列表。

这可以通过条件查询来完成吗?

谢谢!

最佳答案

嗯,我已经找到解决办法了。希望它对某人有帮助:

Criteria criteria = session.createCriteria(NewsItem.class);

criteria.createAlias(NewsItem.COMMENTS, NewsItem.COMMENTS, Criteria.LEFT_JOIN);

ProjectionList properties = Projections.projectionList();
properties.add(Projections.groupProperty(NewsItem.ID).as(NewsItem.ID));
properties.add(Projections.property(NewsItem.DATE).as(NewsItem.DATE));
properties.add(Projections.property(NewsItem.NAME).as(NewsItem.NAME));
properties.add(Projections.property(NewsItem.PREVIEW).as(NewsItem.PREVIEW));
properties.add(Projections.property(NewsItem.IMAGE).as(NewsItem.IMAGE));
properties.add(Projections.count(NewsItem.COMMENTS + "." + Comment.ID).as(NewsItem.COMMENTS_COUNT));
criteria.setProjection(properties);
criteria.setResultTransformer(Transformers.aliasToBean(NewsItem.class));

您还应该向 NewsItem 类添加虚拟属性 COMMENTS_COUNT(长整型)。

关于Hibernate child 计数标准,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4255382/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com