2016-09-05 2 views
0

Я не могу найти критерии, которые могут выполнять сумма (отдельные клики) в запросе. Я получаю результат с простым sql-запросом, но не могу сделать критерии для этого.Критерий спящего режима для суммы (отдельные клики)

В настоящее время я могу просто сделать

.add(Projections.property("clicks").as("clicks")) 

Простой SQL запрос, как этот

выберите сумму (отчетливые щелчки) как щелчки, источник в качестве источника, сумма (jobs_sent) как jobsSent из tbl_click_count где date = '2016-09-04' и domain = 'somename' и whitelabel = 'somename' группа по источнику, whitelabel, domain order by 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.

ответ

0
.add(Projections.distinct(Projections.property("clicks"))); 

Нравится?

+0

Привет, я обновил вопрос с кодом для лучшего понимания требования. Спасибо – Kharoud

0
Projections.sum(Projections.countDistinct(propertyName)); 

Попробуйте это.

Без прогнозов вам потребуется использовать hibernate SQL или собственные SQL-запросы.

+0

Он дает исключение исключения .... «Сумма метода (String) в типе Projections не применима для аргументов (CountProjection)» .... Я использую собственный sql, который решил его использовать. Хотя было бы лучше, если бы это можно было сделать по критериям. – Kharoud

Смежные вопросы