【发布时间】:2017-01-12 17:20:45
【问题描述】:
我无法提出可以在查询中执行 sum(distinct clicks) 的条件。我通过简单的 sql 查询得到结果,但不能制定标准来做同样的事情。
目前我只能做
.add(Projections.property("clicks").as("clicks"))
一个简单的sql查询是这样的
选择 sum(distinct clicks) 作为点击次数,source 作为 source,sum(jobs_sent) 作为 jobsSent from tbl_click_count where date= '2016-09-04' and domain = 'somename' and whitelabel = 'somename' 按来源、白标签、按 id desc 的域顺序分组
我的标准是这样的
Criteria criteria = getSessionFactory().createCriteria(FeedClickCountModel.class)
.add(Restrictions.ge("date", startDate))
.add(Restrictions.le("date", uptoDate))
.setProjection(Projections.projectionList()
.add(Projections.sum("jobsSent").as("jobsSent"))
.add(Projections.groupProperty("source").as("source"))
.add(Projections.property("whiteLabel").as("whiteLabel"))
.add(Projections.property("domain").as("domain"))
.add(Projections.property("totalJobs").as("totalJobs"))
.add(Projections.property("clicks").as("clicks"))
// ^This i want is sum(distinct clicks)
.add(Projections.property("date").as("date"))
.add(Projections.property("id").as("id")))
.setResultTransformer(Transformers.aliasToBean(FeedClickCountModel.class));
没有 sqlprojection 有没有办法做到这一点。
【问题讨论】:
标签: java hibernate spring-mvc hibernate-criteria