ProjectDAOImpl.java
package org.itracker.persistence.dao;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.itracker.model.Project;
import java.util.Date;
import java.util.List;
/**
* This is the implementation bean that seems to make the Hibernate request.
*
* @author ready
*/
public class ProjectDAOImpl extends BaseHibernateDAOImpl<Project>
implements ProjectDAO {
public Project findByPrimaryKey(Integer projectId) {
Project project;
try {
project = (Project) getSession().get(Project.class, projectId);
} catch (HibernateException ex) {
throw convertHibernateAccessException(ex);
}
return project;
}
@SuppressWarnings("unchecked")
public List<Project> findAll() {
List<Project> projects;
try {
Query query = getSession().getNamedQuery("ProjectsAllQuery");
projects = query.list();
} catch (HibernateException ex) {
throw convertHibernateAccessException(ex);
}
return projects;
}
@SuppressWarnings("unchecked")
public List<Project> findByStatus(int status) {
List<Project> projects;
try {
Query query = getSession().getNamedQuery("ProjectsByStatusQuery");
query.setInteger("projectStatus", status);
projects = query.list();
} catch (HibernateException ex) {
throw convertHibernateAccessException(ex);
}
return projects;
}
@SuppressWarnings("unchecked")
public List<Project> findAllAvailable() {
List<Project> projects;
try {
Query query = getSession().getNamedQuery("ProjectsAvailableQuery");
projects = query.list();
} catch (HibernateException ex) {
throw convertHibernateAccessException(ex);
}
return projects;
}
@SuppressWarnings("unchecked")
public Date getLastIssueUpdateDate(Integer projectId) {
Query q = getSession().getNamedQuery("ProjectsLastModifiedIssueDate");
q.setParameter("projectId", projectId);
List result = q.list();
if (result != null && result.size() == 1) {
return (Date) result.get(0);
}
return null;
}
public Project findByName(String name) {
Object project;
try {
Query query = getSession().getNamedQuery("ProjectByNameQuery");
query.setParameter("projectName", name);
project = query.uniqueResult();
return (Project) project;
} catch (HibernateException ex) {
throw convertHibernateAccessException(ex);
}
}
}