roadinspectiondaohibernate.java

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

JAVA
160
字号
package mcaps.apps.prrm.roadinspection.dao.hibernate;

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

import mcap.core.logging.Log;
import mcaps.apps.prrm.roaddefect.dao.jdbc.query.RoadDefectInsert;
import mcaps.apps.prrm.roaddefect.model.RoadDefect;
import mcaps.apps.prrm.roadinspection.dao.RoadInspectionDAO;
import mcaps.apps.prrm.roadinspection.model.RoadInspection;

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;

/**
 * This is an implementation of RoadInspectionDAO using Hibernate. It interacts with
 * Spring's HibernateTemplate to save/delete and retrieve RoadInspection objects.
 * 
 * @author fenglei
 * @date July 20 2006
 * @version 1.0.0.0
 */

public class RoadInspectionDAOHibernate extends HibernateDaoSupport implements
		RoadInspectionDAO {

	/* (non-Javadoc)
	 * @see mcaps.apps.prrm.roadinspection.dao.RoadInspectionDAO#getRoadInspection(java.lang.Integer)
	 */
	public RoadInspection getRoadInspection(Integer roadInspectionID) throws DataAccessException {
		HibernateTemplate template = getHibernateTemplate ();
		RoadInspection roadInspection = (RoadInspection) template.get (RoadInspection.class, roadInspectionID);
		
		if (roadInspection == null) {
			Log.warn ("Road Inspection with specified identifier [" +
					roadInspectionID + "] not found.");
			
			throw new DataRetrievalFailureException ("Road Inspection with specified identifier [" +
					roadInspectionID + "] not found.");
			
		}
		
		return roadInspection;
	}

	/* (non-Javadoc)
	 * @see mcaps.apps.prrm.roadinspection.dao.RoadInspectionDAO#getAllRoadInspections()
	 */
	public List getAllRoadInspections() throws DataAccessException {
		return getHibernateTemplate ().find ("from RoadInspection");
	}

	/* (non-Javadoc)
	 * @see mcaps.apps.prrm.roadinspection.dao.RoadInspectionDAO#getRoadInspections(mcaps.apps.prrm.roadinspection.model.RoadInspection)
	 */
	public List getRoadInspections(RoadInspection roadInspection) throws DataAccessException {

		int cnt = 0;
		if (roadInspection == null) return getAllRoadInspections();
		Criteria c = this.getSession().createCriteria(RoadInspection.class);
		
		String defectDetail = roadInspection.getDefectDetail();
		
		if (defectDetail != null){
			if (defectDetail.trim().length() > 0){
				c.add(Restrictions.like("defectDetail", "%" + defectDetail + "%"));
				cnt++;
			}
		}

		String roadName = roadInspection.getRoadName();
		if (roadName != null){
			if (roadName.trim().length() > 0){
				c.add(Restrictions.like("roadname", "%" + roadName + "%"));
				cnt++;
			}
		}		
		String location = roadInspection.getLocation();
		if (location != null){
			if (location.trim().length() > 0){
				c.add(Restrictions.like("location", "%" + location + "%"));
				cnt++;
			}
		}

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

		String solution = roadInspection.getSolution();
		if (solution != null){
			if (solution.trim().length() > 0){
				c.add(Restrictions.eq("solution", solution));
				cnt++;
			}
		}
		String defectType = roadInspection.getDefectType();
		if (defectType != null){
			if (defectType.trim().length() > 0){
				c.add(Restrictions.eq("defectType", defectType));
				cnt++;
			}
		}
		String severity = roadInspection.getSeverity();
		if (severity != null){
			if (severity.trim().length() > 0){
				c.add(Restrictions.eq("severity", severity));
				cnt++;
			}
		}
		Integer taskId = roadInspection.getTaskId();
		if (taskId != null){
			c.add(Restrictions.eq("taskId", taskId));
			cnt++;
			
		}
		
		Integer roadDefectId = roadInspection.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.roadinspection.dao.RoadInspectionDAO#saveRoadInspection(mcaps.apps.prrm.roadinspection.model.RoadInspection)
	 */
	public void saveRoadInspection(RoadInspection roadInspection) throws DataAccessException {

		getHibernateTemplate ().saveOrUpdate (roadInspection);
		getHibernateTemplate ().flush ();

	}


	/* (non-Javadoc)
	 * @see mcaps.apps.prrm.roadinspection.dao.RoadInspectionDAO#removeRoadInspection(java.lang.Integer)
	 */
	public void removeRoadInspection(RoadInspection roadInspection) throws DataAccessException {
		getHibernateTemplate ().delete (roadInspection);
		
	}

}

⌨️ 快捷键说明

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