ProjectDAOImpl.java

  1. package org.itracker.persistence.dao;

  2. import org.hibernate.HibernateException;
  3. import org.hibernate.Query;
  4. import org.itracker.model.Project;

  5. import java.util.Date;
  6. import java.util.List;

  7. /**
  8.  * This is the implementation bean that seems to make the Hibernate request.
  9.  *
  10.  * @author ready
  11.  */
  12. public class ProjectDAOImpl extends BaseHibernateDAOImpl<Project>
  13.         implements ProjectDAO {

  14.     public Project findByPrimaryKey(Integer projectId) {
  15.         Project project;
  16.         try {
  17.             project = (Project) getSession().get(Project.class, projectId);
  18.         } catch (HibernateException ex) {
  19.             throw convertHibernateAccessException(ex);
  20.         }
  21.         return project;
  22.     }

  23.     @SuppressWarnings("unchecked")
  24.     public List<Project> findAll() {
  25.         List<Project> projects;

  26.         try {
  27.             Query query = getSession().getNamedQuery("ProjectsAllQuery");
  28.             projects = query.list();
  29.         } catch (HibernateException ex) {
  30.             throw convertHibernateAccessException(ex);
  31.         }
  32.         return projects;
  33.     }

  34.     @SuppressWarnings("unchecked")
  35.     public List<Project> findByStatus(int status) {
  36.         List<Project> projects;

  37.         try {
  38.             Query query = getSession().getNamedQuery("ProjectsByStatusQuery");
  39.             query.setInteger("projectStatus", status);
  40.             projects = query.list();
  41.         } catch (HibernateException ex) {
  42.             throw convertHibernateAccessException(ex);
  43.         }
  44.         return projects;
  45.     }

  46.     @SuppressWarnings("unchecked")
  47.     public List<Project> findAllAvailable() {
  48.         List<Project> projects;

  49.         try {
  50.             Query query = getSession().getNamedQuery("ProjectsAvailableQuery");
  51.             projects = query.list();
  52.         } catch (HibernateException ex) {
  53.             throw convertHibernateAccessException(ex);
  54.         }
  55.         return projects;
  56.     }

  57.     @SuppressWarnings("unchecked")
  58.     public Date getLastIssueUpdateDate(Integer projectId) {
  59.         Query q = getSession().getNamedQuery("ProjectsLastModifiedIssueDate");
  60.         q.setParameter("projectId", projectId);

  61.         List result = q.list();
  62.         if (result != null && result.size() == 1) {
  63.             return (Date) result.get(0);
  64.         }
  65.         return null;
  66.     }

  67.     public Project findByName(String name) {

  68.         Object project;
  69.         try {
  70.             Query query = getSession().getNamedQuery("ProjectByNameQuery");
  71.             query.setParameter("projectName", name);
  72.             project = query.uniqueResult();
  73.             return (Project) project;
  74.         } catch (HibernateException ex) {
  75.             throw convertHibernateAccessException(ex);
  76.         }

  77.     }

  78. }