/** * Copyright (c)2010-2011 Enterprise Website Content Management System(EWCMS), All rights reserved. * EWCMS PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * http://www.ewcms.com */ package com.ewcms.plugin.message.manager.dao; import java.util.List; import javax.persistence.NoResultException; import javax.persistence.TypedQuery; import org.springframework.stereotype.Repository; import com.ewcms.common.dao.JpaDAO; import com.ewcms.plugin.message.model.MsgSend; import com.ewcms.plugin.message.model.MsgSend.Type; /** * * @author wu_zhijun * */ @Repository public class MsgSendDAO extends JpaDAO<Long, MsgSend> { public List<MsgSend> findMsgSendByUserName(final String userName){ String hql = "Select s From MsgSend As s Left Join s.msgReceiveUsers As u Where u.userName=:userName"; TypedQuery<MsgSend> query = this.getEntityManager().createQuery(hql, MsgSend.class); query.setParameter("userName", userName); return query.getResultList(); } public MsgSend findMsgSendByUserNameAndId(final String userName, final Long msgSendId){ String hql = "From MsgSend As s Where s.userName=:userName And s.id=:msgSendId"; TypedQuery<MsgSend> query = this.getEntityManager().createQuery(hql, MsgSend.class); query.setParameter("userName", userName); query.setParameter("msgSendId", msgSendId); MsgSend msgSend = null; try{ msgSend = (MsgSend) query.getSingleResult(); }catch(NoResultException e){ } return msgSend; } public List<MsgSend> findMsgSendByType(final Type type, final Integer row){ String hql = "From MsgSend As s Where s.type=:type Order By s.sendTime Desc"; TypedQuery<MsgSend> query = this.getEntityManager().createQuery(hql, MsgSend.class); query.setParameter("type", type); query.setMaxResults(row); return query.getResultList(); } public Boolean findUserHaveSubscribedByUserName(final Long msgSendId, final String userName){ String hql = "Select s From MsgSend As s Left Join s.msgReceiveUsers As u Where s.id=:msgSendId And u.userName=:userName And s.type=:type"; TypedQuery<MsgSend> query = this.getEntityManager().createQuery(hql, MsgSend.class); query.setParameter("msgSendId", msgSendId); query.setParameter("userName", userName); query.setParameter("type", Type.SUBSCRIPTION); List<MsgSend> list = query.getResultList(); return list.isEmpty()? false : true; } }