package com.jspxcms.core.repository.impl;
import java.util.List;
import javax.persistence.EntityManager;
import com.jspxcms.core.domain.Model;
import com.jspxcms.core.domaindsl.QModel;
import com.jspxcms.core.repository.ModelDaoPlus;
import com.mysema.query.BooleanBuilder;
import com.mysema.query.jpa.impl.JPAQuery;
/**
* ModelDaoImpl
*
* @author liufang
*
*/
public class ModelDaoImpl implements ModelDaoPlus {
public List<Model> findList(Integer siteId, String type) {
JPAQuery query = new JPAQuery(this.em);
QModel model = QModel.model;
query.from(model);
BooleanBuilder exp = new BooleanBuilder();
exp = exp.and(model.site.id.eq(siteId));
if (type != null) {
exp = exp.and(model.type.eq(type));
}
query.where(exp);
query.orderBy(model.seq.asc());
return query.list(model);
}
public Model findDefault(Integer siteId, String type) {
JPAQuery query = new JPAQuery(this.em);
QModel model = QModel.model;
query.from(model);
BooleanBuilder exp = new BooleanBuilder();
exp = exp.and(model.site.id.eq(siteId));
exp = exp.and(model.type.eq(type));
query.where(exp);
query.orderBy(model.seq.asc());
query.limit(1);
List<Model> list = query.list(model);
return !list.isEmpty() ? list.get(0) : null;
}
private EntityManager em;
@javax.persistence.PersistenceContext
public void setEm(EntityManager em) {
this.em = em;
}
}