package com.x.bbs.assemble.control.factory; import java.util.ArrayList; import java.util.List; import javax.persistence.EntityManager; import javax.persistence.criteria.CriteriaBuilder; import javax.persistence.criteria.CriteriaQuery; import javax.persistence.criteria.Predicate; import javax.persistence.criteria.Root; import com.x.base.core.project.exception.ExceptionWhen; import com.x.bbs.assemble.control.AbstractFactory; import com.x.bbs.assemble.control.Business; import com.x.bbs.entity.BBSOperationRecord; import com.x.bbs.entity.BBSOperationRecord_; /** * 类 名:BBSOperationRecordFactory
* 实体类:BBSOperationRecord
* 作 者:Liyi
* 单 位:O2 Team
* 日 期:2016-05-20 17:17:26 **/ public class BBSOperationRecordFactory extends AbstractFactory { public BBSOperationRecordFactory(Business business) throws Exception { super(business); } //@MethodDescribe( "获取指定Id的BBSOperationRecord实体信息对象" ) public BBSOperationRecord get( String id ) throws Exception { return this.entityManagerContainer().find( id, BBSOperationRecord.class, ExceptionWhen.none ); } //@MethodDescribe( "列示指定Id的BBSOperationRecord实体信息列表" ) public List list(List ids) throws Exception { if( ids == null || ids.size() == 0 ){ return new ArrayList(); } EntityManager em = this.entityManagerContainer().get(BBSOperationRecord.class); CriteriaBuilder cb = em.getCriteriaBuilder(); CriteriaQuery cq = cb.createQuery(BBSOperationRecord.class); Root root = cq.from(BBSOperationRecord.class); Predicate p = root.get(BBSOperationRecord_.id).in(ids); return em.createQuery(cq.where(p)).getResultList(); } //@MethodDescribe( "获取所有有操作的用户姓名列表,去重复" ) public List distinctAllOperationUserNames() throws Exception { EntityManager em = this.entityManagerContainer().get(BBSOperationRecord.class); CriteriaBuilder cb = em.getCriteriaBuilder(); CriteriaQuery cq = cb.createQuery(String.class); Root root = cq.from(BBSOperationRecord.class); Predicate p = cb.isNotNull( root.get(BBSOperationRecord_.id) ); cq.distinct(true).select( root.get(BBSOperationRecord_.operatorName) ); return em.createQuery(cq.where(p)).getResultList(); } }