package com.ctp.cdi.query.test.service;
import java.util.List;
import com.ctp.cdi.query.AbstractEntityDao;
import com.ctp.cdi.query.criteria.CriteriaSupport;
import com.ctp.cdi.query.test.domain.Simple;
import com.ctp.cdi.query.test.domain.Simple_;
public abstract class SimpleCriteriaDao extends AbstractEntityDao<Simple, Long>
implements CriteriaSupport<Simple> {
public List<Simple> queryByCriteria(String name, Boolean enabled, Integer from, Integer to) {
return criteria()
.eq(Simple_.name, name)
.eq(Simple_.enabled, enabled)
.between(Simple_.counter, from, to)
.getResultList();
}
@SuppressWarnings("unchecked")
public Statistics queryWithSelect(String name) {
return criteria()
.select(Statistics.class, avg(Simple_.counter), count(Simple_.counter))
.eq(Simple_.name, name)
.getSingleResult();
}
@SuppressWarnings("unchecked")
public Object[] queryWithSelectAggregateReturnArray(String name) {
return criteria()
.select(min(Simple_.counter), max(Simple_.counter),
currDate(), currTime(), currTStamp())
.eq(Simple_.name, name)
.createQuery()
.getSingleResult();
}
@SuppressWarnings("unchecked")
public List<Object[]> queryWithSelectAttributes(String name) {
return criteria()
.select(attribute(Simple_.name),
upper(Simple_.name), lower(Simple_.name),
substring(Simple_.name, 2), substring(Simple_.name, 2, 2))
.eq(Simple_.name, name)
.createQuery()
.getResultList();
}
}