package com.jspxcms.core.repository.impl; import java.util.List; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import org.hibernate.ejb.QueryHints; import com.jspxcms.core.domain.ScoreGroup; import com.jspxcms.core.domaindsl.QScoreGroup; import com.jspxcms.core.repository.ScoreGroupDaoPlus; import com.mysema.query.BooleanBuilder; import com.mysema.query.jpa.impl.JPAQuery; public class ScoreGroupDaoImpl implements ScoreGroupDaoPlus { public ScoreGroup findTopOne(Integer siteId) { JPAQuery query = new JPAQuery(this.em); query.setHint(QueryHints.HINT_CACHEABLE, true); QScoreGroup bean = QScoreGroup.scoreGroup; query.from(bean); BooleanBuilder exp = new BooleanBuilder(); if (siteId != null) { exp = exp.and(bean.site.id.eq(siteId)); } query.where(exp); query.orderBy(bean.seq.asc(), bean.id.asc()); query.limit(1); List<ScoreGroup> list = query.list(bean); return list.isEmpty() ? null : list.get(0); } private EntityManager em; @PersistenceContext public void setEm(EntityManager em) { this.em = em; } }