package pt.estgp.estgweb.domain.dao.impl;
import org.apache.log4j.Logger;
import org.hibernate.Criteria;
import org.hibernate.criterion.*;
import java.util.List;
import static org.
hibernate.
criterion.
Restrictions.
*;
/**
* @author: Duarte Santos
* @date: 09-05-2011
* @time: 23:46
* @email: a12564 [at] estgp [dot] pt
*/
public class SurveyQuestionAnswerDaoImpl
extends SurveyQuestionAnswerDao
{
private static final 1.5.0/docs/api/java/util/logging/Logger.html">Logger logger =
1.5.0/docs/api/java/util/logging/Logger.html">Logger.
getLogger(SurveyQuestionAnswerDaoImpl.
class);
public static SurveyQuestionAnswerDaoImpl getInstance
()
{
if(myInstance ==
null)
myInstance =
new SurveyQuestionAnswerDaoImpl
();
return (SurveyQuestionAnswerDaoImpl
) myInstance
;
}
public int countAnswers
(long candidateId,
long nodeId
)
{
Criteria c = createCriteria
()
.
createAlias("candidateAnswer",
"qca")
.
createAlias("response",
"r")
.
add(eq
("qca.id",candidateId
))
.
add(eq
("r.structuralNode.id",nodeId
));
return c.
list().
size();
}
public 5+0%2Fdocs%2Fapi+List">List loadForCsv
(long surveyId
)
{
Criteria c = createCriteria
()
.
createAlias("response",
"r")
.
createAlias("r.owner",
"u")
.
createAlias("candidateAnswer",
"qca")
.
createAlias("qca.questionItem",
"qi")
.
createAlias("qi.question",
"q")
.
createAlias("q.survey",
"s")
.
add(eq
("s.id",surveyId
))
.
setProjection(Projections.
projectionList()
.
add(Projections.
property("r.id"))
.
add(Projections.
property("s.id"))
.
add(Projections.
property("s.title"))
.
add(Projections.
property("q.id"))
.
add(Projections.
property("q.labelpt"))
.
add(Projections.
property("qi.id"))
.
add(Projections.
property("qi.labelpt"))
.
add(Projections.
property("qca.id"))
.
add(Projections.
property("qca.labelpt"))
.
add(Projections.
property("textAnswer"))
.
add(Projections.
property("u.id"))
.
add(Projections.
property("u.username"))
)
.
addOrder(Order.
asc("u.id"))
.
addOrder(Order.
asc("qca.id"))
.
addOrder(Order.
asc("qi.id"))
.
addOrder(Order.
asc("q.id"))
.
addOrder(Order.
asc("s.id"))
.
addOrder(Order.
asc("r.id"));
return c.
list();
}
}