Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package chiron.maxscore.service.impl; import chiron.maxscore.dao.ClassDAO; import chiron.maxscore.entity.Class; import chiron.maxscore.service.ClassService; import java.util.List; import java.util.Map; import org.hibernate.criterion.DetachedCriteria; import org.hibernate.criterion.MatchMode; import org.hibernate.criterion.Restrictions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @Service public class ClassServiceImpl implements ClassService { @Autowired private ClassDAO classDAO; @Override public Class getById(int id) { return classDAO.getById(id); } @Transactional @Override public void save(Class e) { classDAO.save(e); } @Transactional @Override public void delete(Class e) { classDAO.delete(e); } @Override public List<Class> getAll() { return classDAO.getAll(); } @Override public List<Class> search(int page, int pageSize, Map<String, Object> condition) { return classDAO.search((page - 1) * pageSize, pageSize, makeCriteria(condition)); } @Override public int count(Map<String, Object> condition) { return classDAO.count(makeCriteria(condition)); } private DetachedCriteria makeCriteria(Map<String, Object> condition) { DetachedCriteria criteria = DetachedCriteria.forClass(Class.class); if (condition == null) { return criteria; } criteria.createAlias("grade", "g"); criteria.createAlias("g.specialty", "s"); criteria.createAlias("s.college", "c"); if (condition.containsKey("college_id")) { criteria.add(Restrictions.eq("c.id", condition.get("college_id"))); } else if (condition.containsKey("specialty_id")) { criteria.add(Restrictions.eq("s.id", condition.get("specialty_id"))); } else if (condition.containsKey("grade_id")) { criteria.add(Restrictions.eq("g.id", condition.get("grade_id"))); } if (condition.containsKey("class_name")) { criteria.add( Restrictions.ilike("className", condition.get("class_name").toString(), MatchMode.ANYWHERE)); } return criteria; } }