VersionDAOImpl.java

  1. package org.itracker.persistence.dao;

  2. import org.hibernate.HibernateException;
  3. import org.hibernate.criterion.Expression;
  4. import org.itracker.model.Project;
  5. import org.itracker.model.Version;

  6. import java.util.List;

  7. /**
  8.  * Hibernate implementation of <code>VersionDAO</code> interface
  9.  */
  10. public class VersionDAOImpl extends BaseHibernateDAOImpl<Version>
  11.         implements VersionDAO {

  12.     /**
  13.      * find <code>Version</code> by id
  14.      *
  15.      * @param versionId id of the <code>Version</code> to find
  16.      * @return <code>Version</code> found
  17.      */
  18.     public Version findByPrimaryKey(Integer versionId) {
  19.         try {
  20.             return (Version) getSession().get(Version.class, versionId);
  21.         } catch (HibernateException e) {
  22.             throw convertHibernateAccessException(e);
  23.         }
  24.     }

  25.     /**
  26.      * Finds <code>Version</code>s by a project id and returns them as
  27.      * a <code>Collection</code>.
  28.      *
  29.      * @param projectId id of the parent <code>Project</code>
  30.      * @return a <code>Collection</code> containing the <code>Version</code>s found
  31.      */
  32.     @SuppressWarnings("unchecked")
  33.     public List<Version> findByProjectId(Integer projectId) {
  34.         try {
  35.             Project project = (Project) getSession().load(Project.class, projectId);
  36.             return getSession().createCriteria(Version.class)
  37.                     .add(Expression.eq("project", project))
  38.                     .list();
  39.         } catch (HibernateException e) {
  40.             throw convertHibernateAccessException(e);
  41.         }
  42.     }
  43. }