/****************************************************************************** * Copyright (C) 2015 Shenzhen Penguin Network Technology Co., Ltd * All Rights Reserved. * ±¾Èí¼þΪÉîÛÚÊÐÆó¶ìÍøÂç¿Æ¼¼ÓÐÏÞ¹«Ë¾¿ª·¢ÑÐÖÆ¡£Î´¾­±¾¹«Ë¾ÕýʽÊéÃæÍ¬Ò⣬ÆäËûÈκθöÈË¡¢ÍÅÌå * ²»µÃʹÓᢸ´ÖÆ¡¢Ð޸Ļò·¢²¼±¾Èí¼þ. *****************************************************************************/ package com.qxueyou.scc.base.service.impl; import java.io.Serializable; import java.util.Collection; import java.util.List; import java.util.Map; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; import com.querydsl.jpa.impl.JPAQueryFactory; import com.qxueyou.scc.base.dao.CommonDAO; import com.qxueyou.scc.base.model.ITrace; import com.qxueyou.scc.base.model.Pager; import com.qxueyou.scc.base.model.Result; import com.qxueyou.scc.base.service.ICommonService; import com.qxueyou.scc.base.util.TraceUtils; import com.qxueyou.scc.sys.model.SysDictionary; @Service(value = "commonAppService") /** * @author Ïĵ»¢ * @since JDK1.7 * @history 2014-11-18 Ïĵ»¢ н¨ */ public class CommonAppService implements ICommonService { /** * »ñÈ¡ÊÂÎñ¹ÜÀíÆ÷ */ @PersistenceContext public EntityManager em; /** * »ñÈ¡querydsl ²éѯ¹¤³§ */ public JPAQueryFactory queryFactory; private CommonDAO commonDAO; public CommonDAO getCommonDAO(){ return commonDAO; } public JPAQueryFactory getQueryFactory() { return new JPAQueryFactory(em); } /** * ɾ³ýʵÌå * @param trace */ public void deleteTrace(ITrace trace) { trace.setDeleteFlag(true); TraceUtils.setUpdateTrace(trace); save(trace); } /** * ɾ³ýʵÌ弯ºÏ * @param traces */ public void deleteTraces(List traces) { for (ITrace trace : traces) { deleteTrace(trace); } } /** * ÒÀÀµ×¢Èë * * @param commonDAO */ @Autowired(required = false) public void setCommonDAO(@Qualifier("commonDao") CommonDAO commonDAO) { this.commonDAO = commonDAO; } /** * ¶ÁÈ¡¶ÔÏó * @param ·ºÐÍ * @param clz ʵÌåÀàÐÍ * @param pk ʵÌåÖ÷¼ü * @return ²éѯ½á¹û */ public T read(Class clz,Serializable pk){ return this.commonDAO.read(clz, pk); } /** * ±£´æ¶ÔÏó * @return ²éѯ½á¹û */ public Result save(Object obj){ this.commonDAO.saveOrUpdate(obj); return new Result(true); } /** * ˢжÔÏó ÊÖ¶¯Ìá½» * @return ²éѯ½á¹û */ public void flush(){ getCommonDAO().getHibernateTemplate().flush(); } /** * Çå³ý»º´æ */ public void clearCache(){ getCommonDAO().getHibernateTemplate().clear(); } /** * Çå³ýµ¥¸ö»º´æ */ public void evict(Object obj){ getCommonDAO().getHibernateTemplate().evict(obj); } /** * ±£´æ¶ÔÏó * @return ²éѯ½á¹û */ public Result insert(Object obj){ this.commonDAO.save(obj); return new Result(true); } /** * ±£´æ¶ÔÏó * @return ²éѯ½á¹û */ @SuppressWarnings("rawtypes") public Result saveOrUpdateAll(Collection collection){ commonDAO.saveOrUpdateAll(collection); return new Result(true); } /** * ¸ù¾Ýhql²éѯ,²¢·µ»ØÖ´ÐÐÀàÐ͵ÄÁбí½á¹û * @param hql ²éѯÓï¾ä * @param args ²ÎÊý * @param cls ·µ»ØÀàÐÍ * @return */ public List find(String hql,List args,Class cls){ return this.commonDAO.find(hql, args, cls); } /** * ¸ù¾Ýhql²éѯ,²¢·µ»ØÖ´ÐÐÀàÐ͵ÄÁбí½á¹û * * @param hql ²éѯÓï¾ä * @param cls ·µ»ØÀàÐÍ * @return */ public int findCount(String hql, List args) { return this.commonDAO.findCount(hql, args); } /** * ±£´æ»ò¸üжÔÏó */ public void deleteAll(@SuppressWarnings("rawtypes") Collection col) { this.commonDAO.deleteAll(col); } /** * ¸ù¾Ýhql²éѯ,²¢·µ»ØÖ´ÐÐÀàÐ͵ÄΨһ½á¹û * @param hql ²éѯÓï¾ä * @param args ²ÎÊý * @param cls ·µ»ØÀàÐÍ * @return */ public T findUnique(String hql,List args,Class cls){ return this.commonDAO.findUnique(hql, args, cls); } /** * ʹÓÃsql²éѯ½á¹û * @param sql * @param args * @return */ @SuppressWarnings("rawtypes") public List findBySql(final String sql,final List args){ return this.commonDAO.findBySql(sql, args); } /** * ʹÓÃsql²éѯ½á¹û * @param sql * @param args * @return */ @SuppressWarnings("rawtypes") public List findByPageSql(final String sql,final List args, final Pager pager){ return this.commonDAO.findByPageSql(sql, args, pager); } /** * ʹÓÃsql²éѯ½á¹û * @param sql * @param args * @return */ public int findCountBySql(final String sql,final List args){ return this.commonDAO.findCountBySql(sql, args); } public Result bulkUpdate(String hql, Object args[]) { return this.commonDAO.bulkUpdate(hql, args); } public Result executeProduce(String sql, Object args[]) { return this.commonDAO.executeProduce(sql, args); } public int executeDelete(String sql, Object args[]) { return this.commonDAO.executeSqlDelete(sql, args); } /** * hqlÖ»º¬µ¥Ò»²ÎÊý * * @param hql ²éѯÓï¾ä * @param args ²ÎÊýÊý×é * @param cls ·µ»ØÀàÐÍ * @return */ public Result bulkUpdateInLoop(String hql, Object args[]) { return this.commonDAO.bulkUpdateInLoop(hql, args); } /** * ¸´ÔÓhql * @param sql * @param map * @param cls * @return */ public List findByComplexHql(final String hql, final Map map, Class cls){ return this.commonDAO.findByComplexHql(hql, map, cls); } /** * ¸´ÔÓhql * @param sql * @param map * @param cls * @return */ public T findUniqueByHql(final String hql, final Map map){ return commonDAO.findUniqueByHql(hql, map); } /** * ¸´ÔÓhql * @param sql * @param map * @param cls * @return */ public List findByComplexHql(final String hql, final Pager page, final Map map, Class cls){ return this.commonDAO.findByComplexHql(hql, page, map, cls); } /** * ·µ»Ø¸öÊý ¸´ÔÓhql * * @param hql ²éѯÓï¾ä * @param cls ·µ»ØÀàÐÍ * @return */ public int findCountByComplexHql(final String hql, final Map map) { return this.commonDAO.findCountByComplexHql(hql, map); } /** * ·µ»Ø¸öÊý ¸´ÔÓsql * * @param hql ²éѯÓï¾ä * @param cls ·µ»ØÀàÐÍ * @return */ public int findCountByComplexSql(final String hql, final Map map) { return this.commonDAO.findCountByComplexSql(hql, map); } /** * ¸´ÔÓsql * @param sql * @param map * @param cls * @return */ public List findByComplexSql(final String sql, final Map map, Class cls){ return this.commonDAO.findByComplexSql(sql, map, cls); } /** * ¸´ÔÓhql * @param sql * @param map * @param cls * @return */ public List findByComplexSql(final String sql, final Pager page, final Map map, Class cls){ return this.commonDAO.findByComplexSql(sql, page, map, cls); } /** * ¸ù¾Ýhql²éѯ,²¢·µ»ØÖ´ÐÐÀàÐ͵ÄÁбí½á¹û£¬ÁбíÊý¾ÝΪMap * @param hql * @param map * @return */ public List> findListWithMapByHql(final String hql, final Map map){ return this.commonDAO.findListWithMapByHql(hql, map); } /** * ¸ù¾Ýhql²éѯ,²¢·µ»ØÖ´ÐÐÀàÐ͵ÄÁбí½á¹û£¬ÁбíÊý¾ÝΪMap * @param hql * @param args * @return */ public List> findListWithMapByHql(final String hql, final Map args,final Pager page){ return this.commonDAO.findListWithMapByHql(hql, args,page); } /** * ·ÖÒ³²éѯ * @param hql * @param page * @param args * @param cls * @return */ public List findList(final String hql, final Pager page, final List args,Class cls){ return this.commonDAO.findList(hql, page, args, cls); } /** * ²éѯ * @param hql * @param args * @return */ public List findwithRawResult(String hql, List args) { return this.commonDAO.findwithRawResult(hql, args); } /** * ¸ù¾ÝÅäÖÃkey²éѯvalueÖµ * @param key * @return */ public String queryConfigValue(String key){ return this.commonDAO.queryConfigValue(key); } /** * ¸ù¾Ý×ÖµäÀàÐͲéѯ×ÖµäÄÚÈݵÄlist * @param dicType * @return */ public List queryDictConfigMap(String dicType){ return this.commonDAO.queryDictConfigMap(dicType); } }