/** * */ package org.inbio.m3s.dao.core.impl; import org.hibernate.Query; import org.hibernate.Session; import org.inbio.m3s.dao.core.StatisticsDAO; import org.springframework.orm.hibernate3.HibernateCallback; import org.springframework.orm.hibernate3.HibernateTemplate; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; /** * @author jgutierrez * */ public class StatisticsDAOImpl extends HibernateDaoSupport implements StatisticsDAO { private final Integer DSC_MEDIA_TYPE_ID = new Integer(1); private final Integer MOV_VIDEO_MEDIA_TYPE_ID = new Integer(4); /* (non-Javadoc) * @see org.inbio.m3s.dao.core.StatisticsDAO#DSCPhotosCount() */ public Long DSCPhotosCount() throws IllegalArgumentException { HibernateTemplate template = getHibernateTemplate(); return (Long) template.execute(new HibernateCallback() { public Object doInHibernate(Session session) { Query query = session.createQuery( "select count(m) from Media m where m.mediaTypeId = " + DSC_MEDIA_TYPE_ID); query.setCacheable(true); return query.list().get(0); } }); } /* (non-Javadoc) * @see org.inbio.m3s.dao.core.StatisticsDAO#allMediaCount() */ public Long allMediaCount() throws IllegalArgumentException { HibernateTemplate template = getHibernateTemplate(); return (Long) template.execute(new HibernateCallback() { public Object doInHibernate(Session session) { Query query = session.createQuery( "select count(m) from Media m"); query.setCacheable(true); return query.list().get(0); } }); } /* (non-Javadoc) * @see org.inbio.m3s.dao.core.StatisticsDAO#videosCount() */ public Long videosCount() throws IllegalArgumentException { HibernateTemplate template = getHibernateTemplate(); return (Long) template.execute(new HibernateCallback() { public Object doInHibernate(Session session) { Query query = session.createQuery( "select count(m) from Media m where m.mediaTypeId = " + MOV_VIDEO_MEDIA_TYPE_ID); query.setCacheable(true); return query.list().get(0); } }); } }