taskdaohibernate.java

来自「Java的框架」· Java 代码 · 共 139 行

JAVA
139
字号
/**
 * 
 */
package mcaps.apps.prrm.task.dao.hibernate;

import java.util.ArrayList;
import java.util.List;

import mcap.core.logging.Log;
import mcaps.apps.prrm.roadinspection.model.RoadInspection;
import mcaps.apps.prrm.task.dao.TaskDAO;
import mcaps.apps.prrm.task.model.Category;
import mcaps.apps.prrm.task.model.Priority;
import mcaps.apps.prrm.task.model.Status;
import mcaps.apps.prrm.task.model.Task;

import org.hibernate.Criteria;
import org.hibernate.criterion.Restrictions;
import org.springframework.dao.DataAccessException;
import org.springframework.dao.DataRetrievalFailureException;
import org.springframework.orm.hibernate3.HibernateTemplate;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

/**
 * @author fenglei
 *
 */
public class TaskDAOHibernate extends HibernateDaoSupport implements TaskDAO {
	
	private String className="mcaps.apps.prrm.task.dao.hibernate.TaskDAOHibernate";
	/* (non-Javadoc)
	 * @see mcaps.apps.prrm.task.dao.TaskDAO#getTask(java.lang.Integer)
	 */
	public Task getTask(Integer taskID) throws DataAccessException {
		HibernateTemplate template=getHibernateTemplate();
		Task task=(Task)template.get(Task.class,taskID);
		if(task ==null)
		{
			Log.warn("Task with spcified identifier [" +
					taskID + "] not found.");
			throw new DataRetrievalFailureException("Task with spcified identifier [" + 
					taskID + "] not found.");
		}
		
		return task;
	}

	/* (non-Javadoc)
	 * @see mcaps.apps.prrm.task.dao.TaskDAO#getAllTasks()
	 */
	public List getAllTasks() throws DataAccessException {
		return getHibernateTemplate().find("from Task");
		
	}

	/* (non-Javadoc)
	 * @see mcaps.apps.prrm.task.dao.TaskDAO#getTasks(mcaps.apps.prrm.task.model.Task)
	 */
	public List getTasks(Task task) throws DataAccessException {

		int cnt = 0;
		if (task == null) return getAllTasks();
		Criteria c = this.getSession().createCriteria(Task.class);
		
		String priority = task.getPriority();
		
		if (priority != null){
			if (priority.trim().length() > 0){
				c.add(Restrictions.like("priority", "%" + priority + "%"));
				cnt++;
			}
		}

		String category = task.getCategory();
		if (category != null){
			if (category.trim().length() > 0){
				c.add(Restrictions.like("category", "%" + category + "%"));
				cnt++;
			}
		}		
		String status = task.getStatus();
		if (status != null){
			if (status.trim().length() > 0){
				c.add(Restrictions.like("status", "%" + status + "%"));
				cnt++;
			}
		}

		String remarks = task.getRemarks();
		if (remarks != null){
			if (remarks.trim().length() > 0){
				c.add(Restrictions.like("remarks", "%" + remarks + "%"));
				cnt++;
			}
		}		

		String assignedUserId = task.getAssignedUserId();
		if (assignedUserId != null){
			if (assignedUserId.trim().length() > 0){
				c.add(Restrictions.eq("assignedUserId", assignedUserId));
				cnt++;
			}
		}
		
		Integer  roadDefectId=task.getRoadDefectId();
		if (roadDefectId != null){
				c.add(Restrictions.eq("roadDefectId", roadDefectId));
				cnt++;
		}	
		
		
		//Return empty list else all records will be returned if 
		//no restriction is applied.
		if (cnt > 0){
			return c.list();
		}
		return new ArrayList();
	}

	/* (non-Javadoc)
	 * @see mcaps.apps.prrm.task.dao.TaskDAO#saveTask(mcaps.apps.prrm.task.model.Task)
	 */
	public void saveTask(Task task) throws DataAccessException {
		Log.info(className + " saveTask");
		getHibernateTemplate().saveOrUpdate(task);
		getHibernateTemplate().flush();
		Log.info(className + " saveTask taskid=" + task.getId());
	}

	/* (non-Javadoc)
	 * @see mcaps.apps.prrm.task.dao.TaskDAO#removeTask(java.lang.Integer)
	 */
	public void removeTask(Task task) throws DataAccessException {
		getHibernateTemplate().delete(task);

	}

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?