package edu.lmu.cs.headmaster.ws.dao; import java.util.List; import org.joda.time.DateTime; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; import edu.lmu.cs.headmaster.ws.domain.Event; /** * Hibernate implementation of the event dao. */ public class EventDaoHibernateImpl extends HibernateDaoSupport implements EventDao { @Override public Event getEventById(Long id) { return getHibernateTemplate().get(Event.class, id); } @Override @SuppressWarnings("unchecked") public List<Event> getEvents(String query, int skip, int max) { return (List<Event>)getSession().createQuery( "from Event event where lower(event.title) like :term or lower(event.description) like :term order by event.dateTime desc") .setParameter("term", ("%" + query + "%").toLowerCase()) .setFirstResult(skip) .setMaxResults(max) .list(); } @Override @SuppressWarnings("unchecked") public List<Event> getEventsByDate(DateTime startDate, DateTime stopDate, int skip, int max) { return (List<Event>)getSession().createQuery( "from Event event where event.dateTime >= :startDate and event.dateTime <= :stopDate order by event.dateTime") .setParameter("startDate", startDate) .setParameter("stopDate", stopDate) .setFirstResult(skip) .setMaxResults(max) .list(); } @Override public Event createEvent(Event event) { getHibernateTemplate().save(event); return event; } @Override public void createOrUpdateEvent(Event event) { getHibernateTemplate().saveOrUpdate(event); } }