/**
* 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.MsgReceive;
/**
*
* @author wu_zhijun
*
*/
@Repository
public class MsgReceiveDAO extends JpaDAO<Long, MsgReceive> {
public List<MsgReceive> findMsgReceiveByUserName(final String userName){
String hql = "From MsgReceive As r Where r.userName=:userName";
TypedQuery<MsgReceive> query = this.getEntityManager().createQuery(hql, MsgReceive.class);
query.setParameter("userName", userName);
return query.getResultList();
}
public MsgReceive findMsgReceiveByUserNameAndId(final String userName, final Long msgReceiveId){
String hql = "From MsgReceive As r Where r.userName=:userName And r.id=:msgReceiveId";
TypedQuery<MsgReceive> query = this.getEntityManager().createQuery(hql, MsgReceive.class);
query.setParameter("userName", userName);
query.setParameter("msgReceiveId", msgReceiveId);
MsgReceive msgReceive = null;
try{
msgReceive = (MsgReceive) query.getSingleResult();
}catch(NoResultException e){
}
return msgReceive;
}
public List<MsgReceive> findMsgReceiveByUserNameAndUnRead(final String userName){
String hql = "From MsgReceive As r Where r.userName=:userName And r.read=false Order By r.id Desc";
TypedQuery<MsgReceive> query = this.getEntityManager().createQuery(hql, MsgReceive.class);
query.setParameter("userName", userName);
return query.getResultList();
}
public Long findUnReadMessageCountByUserName(final String userName){
String hql = "Select Count(r.id) From MsgReceive As r Where r.userName=:userName And r.read=false";
TypedQuery<Long> query = this.getEntityManager().createQuery(hql, Long.class);
query.setParameter("userName", userName);
return query.getSingleResult();
}
}