Java tutorial
package tw.edu.chit.dao.hibernate; import java.util.Date; import java.util.LinkedList; import java.util.List; import org.apache.commons.lang3.StringUtils; import org.hibernate.Hibernate; import org.hibernate.Session; import org.hibernate.criterion.Criterion; import org.hibernate.criterion.DetachedCriteria; import org.hibernate.criterion.Example; import org.hibernate.criterion.MatchMode; import org.hibernate.criterion.Order; import org.hibernate.criterion.Restrictions; import org.springframework.dao.DataAccessException; import org.springframework.orm.hibernate3.HibernateTemplate; import tw.edu.chit.dao.MemberDAO; import tw.edu.chit.model.AbilityExamine; import tw.edu.chit.model.Aborigine; import tw.edu.chit.model.ClassCadre; import tw.edu.chit.model.ClassInCharge; import tw.edu.chit.model.Clazz; import tw.edu.chit.model.Code5; import tw.edu.chit.model.CodeEmpl; import tw.edu.chit.model.ContractTeacher; import tw.edu.chit.model.DEmpl; import tw.edu.chit.model.DeptCode4Yun; import tw.edu.chit.model.DtimeClass; import tw.edu.chit.model.Empl; import tw.edu.chit.model.Employee; import tw.edu.chit.model.Entrno; import tw.edu.chit.model.FeeCode; import tw.edu.chit.model.Graduate; import tw.edu.chit.model.LifeCounseling; import tw.edu.chit.model.Module; import tw.edu.chit.model.Rcact; import tw.edu.chit.model.Rcbook; import tw.edu.chit.model.Rcconf; import tw.edu.chit.model.Rchono; import tw.edu.chit.model.Rcjour; import tw.edu.chit.model.Rcpet; import tw.edu.chit.model.Rcproj; import tw.edu.chit.model.RecruitSchool; import tw.edu.chit.model.StdAbility; import tw.edu.chit.model.StdImage; import tw.edu.chit.model.StdSkill; import tw.edu.chit.model.Student; import tw.edu.chit.model.TeacherStayTime; import tw.edu.chit.model.WwPass; public class MemberDAOImpl extends BaseDAOHibernate implements MemberDAO { @SuppressWarnings("unchecked") public List submitQueryByCriteria(DetachedCriteria criteria) { return criteria.getExecutableCriteria(getSession()).list(); } public Employee getEmployee(Integer oid) { return (Employee) getObject(Employee.class, oid); } public void saveEmployee(Employee employee) { saveObject(employee); } public void saveEmpl(Empl employee) { saveObject(employee); } public void removeEmpl(Empl emp) { removeObject(emp); } public void saveDEmpl(DEmpl employee) { saveObject(employee); } public void removeDEmpl(DEmpl emp) { removeObject(emp); } /** * ?? * * @param dempl * @return */ @SuppressWarnings("unchecked") public List<DEmpl> findDEmplBy(DEmpl dempl) { Session session = getHibernateTemplate().getSessionFactory().getCurrentSession(); return session.createCriteria(DEmpl.class).add(Example.create(dempl).enableLike(MatchMode.START)) .addOrder(Order.asc("idno")).list(); } public void saveStudent(Student student) { saveObject(student); } public void removeStudent(Student student) { removeObject(student); } public void saveGraduate(Graduate graduate) { saveObject(graduate); } public void removeGraduate(Graduate graduate) { removeObject(graduate); } public void removeEntrno(Entrno entrno) { removeObject(entrno); } public void removeClassInCharge(ClassInCharge classInCharge) { removeObject(classInCharge); } @SuppressWarnings("unchecked") public Clazz findClassByClassNo(String classNo) { List classes = getHibernateTemplate().find("from Clazz where classNo = ?", classNo); if (classes.size() == 0) { return null; } else { return (Clazz) classes.get(0); } } @SuppressWarnings("unchecked") public WwPass findWWPassByAccount(String account) { List users = getHibernateTemplate().find("from WwPass w where w.username = '" + account + "'"); if (users.size() == 0) { return null; } else { return (WwPass) users.get(0); } } public WwPass findWWPassByAccountPassword(String account, String password) { List users = getHibernateTemplate() .find("FROM WwPass WHERE username='" + account + "' AND password='" + password + "'"); if (users.size() < 1) { users = getHibernateTemplate() .find("FROM WwPass WHERE secondName='" + account + "' AND password='" + password + "'"); } else { return (WwPass) users.get(0); } if (users.size() < 1) { return null; } else { return (WwPass) users.get(0); } } public void removeWWPass(WwPass pass) { removeObject(pass); } @SuppressWarnings("unchecked") //Add 'group by c.classNo' for avoid duplicate classNo -- 2010/08/25 Jason public List<Clazz> findClassesInChargeByMemberModuleOids(Integer memberOid, String moduleOids) { return getHibernateTemplate().find( " select c from Clazz c, ClassInCharge cic " + "where c.classNo = cic.classNo " + " and cic.empOid = ? " + " and cic.moduleOids like ? " + " group by c.classNo " + "order by c.campusNo, c.schoolNo, c.deptNo, c.classNo", new Object[] { memberOid, "%|" + moduleOids + "|%" }); } @SuppressWarnings("unchecked") public List<ClassInCharge> findClassesInChargesByEmployeeModuleOids(Integer empOid, String moduleOids) { return getHibernateTemplate().find("from ClassInCharge where empOid = ? and moduleOids like ?", new Object[] { empOid, "%|" + moduleOids + "|%" }); } @SuppressWarnings("unchecked") public List<Code5> findCampusInChargeByMemberModuleOids(Integer memberOid, String moduleOids) { return getHibernateTemplate().find( " select c5 from Code5 c5, Class, c, ClassInCharge cic " + "where c5.idno in " + "(select distinct c.campusNo from from Class, c, ClassInCharge cic" + " where c.classNo = cic.classNo" + " and cic.empOid = ?" + " and cic.moduleOids like ?)" + " order by c5.sequence", new Object[] { memberOid, "%|" + moduleOids + "|%" }); } public Code5 findCode5ByCategoryIdno(String category, String no) { List ret = getHibernateTemplate().find("from Code5 c5 where c5.category = ? and c5.idno = ?", new Object[] { category, no }); if (ret.size() == 0) { return null; } else { return (Code5) ret.get(0); } } public Employee findEmployeeByIdno(String idno) { List ret = getHibernateTemplate().find("from Employee e where e.account = ?", idno); if (ret.size() == 0) { return null; } else { return (Employee) ret.get(0); } } public Empl findEmplByIdno(String idno) { List ret = getHibernateTemplate().find("from Empl e where e.idno = '" + idno + "'"); if (ret.size() == 0) { return null; } else { return (Empl) ret.get(0); } } public DEmpl findDEmplByIdno(String idno) { List ret = getHibernateTemplate().find("from DEmpl e where e.idno = '" + idno + "'"); if (ret.size() == 0) { return null; } else { return (DEmpl) ret.get(0); } } public Student findStudentByStudentNo(String studentNo) { List ret = getHibernateTemplate().find("from Student s where s.studentNo = ?", studentNo); if (ret.size() == 0) { return null; } else { return (Student) ret.get(0); } } @SuppressWarnings("unchecked") public List<Module> findModulesByMember(Integer memberOid, int level) { return getHibernateTemplate().find(" select distinct m from Module m, UnitModule um, UnitBelong ub " + "where m.oid = um.moduleOid " + "and um.unitNo = ub.unitNo " + "and ub.empOid = ? " + "and m.level = ? " + "order by m.sequence", new Object[] { memberOid, level }); } @SuppressWarnings("unchecked") public List<Module> findModulesByMemberInetUseEnable(Integer memberOid, int level, byte inetUse, byte inetEnable) { return getHibernateTemplate().find( " select distinct m from Module m, UnitModule um, UnitBelong ub " + "where m.oid = um.moduleOid " + "and um.unitNo = ub.unitNo " + "and ub.empOid = ? " + "and m.level = ? " + "and m.inetUse = ? " + "and m.inetEnable = ? " + "order by m.sequence", new Object[] { memberOid, level, inetUse, inetEnable }); } @SuppressWarnings("unchecked") public List<Module> findModulesByParentOidMember(int parentOid, Integer memberOid) { return getHibernateTemplate().find(" select distinct m from Module m, UnitModule um, UnitBelong ub " + "where m.oid = um.moduleOid " + "and um.unitNo = ub.unitNo " + "and m.parentOid = ? " + "and ub.empOid = ? " + "order by m.sequence", new Object[] { parentOid, memberOid }); } @SuppressWarnings("unchecked") public List<Module> findModulesByParentOidMemberInetUseEnable(int parentOid, Integer memberOid, byte inetUse, byte inetEnable) { return getHibernateTemplate().find( " select distinct m from Module m, UnitModule um, UnitBelong ub " + "where m.oid = um.moduleOid " + "and um.unitNo = ub.unitNo " + "and m.parentOid = ? " + "and ub.empOid = ? " + "and m.inetUse = ? " + "and m.inetEnable = ? " + "order by m.sequence", new Object[] { parentOid, memberOid, inetUse, inetEnable }); } @SuppressWarnings("unchecked") public List<Module> findModulesByParentName(String parentName) { return getHibernateTemplate().find(" select m from Module m, Module p " + "where m.parentOid = p.oid " + "and p.name = ? " + "order by m.sequence", new Object[] { parentName }); } @SuppressWarnings("unchecked") public List<Module> findModulesByParentNameMember(String parentName, Integer memberOid) { return getHibernateTemplate().find( " select m from Module m, UnitModule um, UnitBelong ub, Module p " + "where m.oid = um.moduleOid " + "and um.unitNo = ub.unitNo " + "and m.parentOid = p.oid " + "and p.name = ? " + "and ub.empOid = ? " + " group by m.oid order by m.sequence", new Object[] { parentName, memberOid }); } public Module findModulesByName(String name) { List ret = getHibernateTemplate().find("from Module m where m.name = ?", name); if (ret.size() == 0) { return null; } else { return (Module) ret.get(0); } } /** * ?? * * @param classNo ? * @return java.util.List List of Student objects */ @SuppressWarnings("unchecked") public List<Student> findStudentsByClazz(String classNo) { return getHibernateTemplate().find("FROM Student s WHERE s.departClass = ? ORDER BY s.studentNo", classNo); } /** * ?? * * @param classNo ? * @return java.util.List List of Student objects */ @SuppressWarnings("unchecked") public List<Graduate> findGraduatesByClazz(String classNo) { return getHibernateTemplate().find("FROM Graduate g WHERE g.departClass = ?", classNo); } @SuppressWarnings("unchecked") public List<Student> findStudentsInChargeByDept(String deptNo, String classInCharge) { return getHibernateTemplate().find(" select s from Student s, Clazz c " + "where s.departClass = c.classNo " + " and c.deptNo = '" + deptNo + "' " + " and s.departClass in " + classInCharge); } @SuppressWarnings("unchecked") public List<Student> findStudentsInChargeByDept(String campusNo, String schoolNo, String deptNo, String classInCharge) { return getHibernateTemplate().find(" select s from Student s, Clazz c " + "where s.departClass = c.classNo " + " and c.campusNo = '" + campusNo + "' " + " and c.schoolNo = '" + schoolNo + "' " + " and c.deptNo = '" + deptNo + "' " + " and s.departClass in " + classInCharge); } @SuppressWarnings("unchecked") public List<Student> findStudentsInChargeBySchool(String schoolNo, String classInCharge) { return getHibernateTemplate().find(" select s from Student s, Clazz c " + "where s.departClass = c.classNo " + " and c.schoolNo = '" + schoolNo + "' " + " and s.departClass in " + classInCharge); } @SuppressWarnings("unchecked") public List<Student> findStudentsInChargeBySchool(String campusNo, String schoolNo, String classInCharge) { return getHibernateTemplate().find(" select s from Student s, Clazz c " + "where s.departClass = c.classNo " + " and c.campusNo = '" + campusNo + "' " + " and c.schoolNo = '" + schoolNo + "' " + " and s.departClass in " + classInCharge); } @SuppressWarnings("unchecked") public List<Student> findStudentsInChargeByCampus(String campusNo, String classInCharge) { return getHibernateTemplate().find(" select s from Student s, Clazz c " + "where s.departClass = c.classNo " + " and c.campusNo = '" + campusNo + "' " + " and s.departClass in " + classInCharge); } @SuppressWarnings("unchecked") public Graduate findGraduateByStudentNo(String studentNo) { List<Graduate> graduates = getHibernateTemplate().find("from Graduate g " + "where g.studentNo = ?", studentNo); if (graduates.size() == 0) { return null; } else { return graduates.get(0); } } @SuppressWarnings("unchecked") public Graduate findGraduateByIdno(String idno) { List<Graduate> graduates = getHibernateTemplate().find("from Graduate g " + "where g.idno = ?", idno); if (graduates.size() == 0) { return null; } else { return graduates.get(0); } } @SuppressWarnings("unchecked") public List<Student> findAllStudentsInCharge(String classInCharge) { return getHibernateTemplate().find("from Student s " + "where s.departClass in " + classInCharge); } @SuppressWarnings("unchecked") public List<Clazz> findAllClasses() { return getHibernateTemplate().find("from Clazz order by campusNo, schoolNo, deptNo, grade, classNo"); } @SuppressWarnings("unchecked") public List<Clazz> findClassesByType(String type) { return getHibernateTemplate().find("from Clazz " + "where type = '" + type + "' " + "order by campusNo, schoolNo, deptNo, grade, classNo"); } @SuppressWarnings("unchecked") public List<Clazz> findClassByClassNoPattern(String classNoPattern) { return getHibernateTemplate().find("from Clazz " + "where classNo like '" + classNoPattern + "'"); } @SuppressWarnings("unchecked") public List<Code5> findCode5ByCategory(String category) { return getHibernateTemplate().find("from Code5 c " + "where c.category = ? AND idno IS NOT NULL AND name IS NOT NULL " + "order by c.sequence", category); } @SuppressWarnings("unchecked") public List<CodeEmpl> findCodeEmplByCategory(String category) { return getHibernateTemplate() .find("from CodeEmpl c " + "where c.category = ? " + "order by c.sequence, c.idno", category); } /** * find CodeEmpl by Category using LIKE '%pattern%' * * @param category * @return */ @SuppressWarnings("unchecked") public List<CodeEmpl> findCodeEmplByCategory2(String category) { return getHibernateTemplate().find( "from CodeEmpl c " + "where c.category like '%" + category + "%' " + "order by c.sequence, c.idno"); } public List<Code5> findAllCampuses() { /* * return getHibernateTemplate().find( "from Code5 c " + * "where c.category = 'Campus' " + "order by c.sequence"); */ return findCode5ByCategory("Campus"); } public List<Code5> findAllSchools() { return findCode5ByCategory("School"); } public List<Code5> findAllDepts() { return findCode5ByCategory("Dept"); } public List<Code5> findAllMasterDepts() { return findCode5ByCategory("MasterDept"); } /** * ??? * * @param key ??? * @return java.util.List List of Student objects */ @SuppressWarnings("unchecked") public List<Student> getStudentsByNameKeyword(String key) { Object[] param = { "%" + key + "%" }; return getHibernateTemplate().find("from Student s where s.studentName like ?", param); } /* * public List<Code5> findAllStatus() { * * return getHibernateTemplate().find( "from Code5 c " + * "where c.category = 'Status' " + "order by c.sequence"); } * * public List<Code5> findAllIdentity() { * * return getHibernateTemplate().find( "from Code5 c " + * "where c.category = 'Identity' " + "order by c.sequence"); } */ /** * Get Empl within the same unit (NOT Empl.unit) defined in Code5 with * category 'Unit'. The empl/unit multi-to-multi mapping is stored in table * UnitBelong * * @param unitNo the unit code defined in Code5, NOT Empl.unit * @return java.util.List<Empl> employees within that unit */ @SuppressWarnings("unchecked") public List<Empl> findEmplFromUnitBelongByUnitNo(String unitNo) { return getHibernateTemplate().find("select e from Empl e, UnitBelong u " + "where e.oid = u.empOid " + " and u.unitNo = '" + unitNo + "' " + "order by u.oid desc"); } /** * Oid?Empl * * @param oid Empl Oid * @return tw.edu.chit.model.Empl object */ public Empl getEmplByOid(Integer oid) { return (Empl) getObject(Empl.class, oid); } public Empl getEmplFilterBy(Integer oid, String year) { getHibernateTemplate().enableFilter("yearFilterDef").setParameter("yearCondition", year); return (Empl) getObject(Empl.class, oid); } /** * Empl Oid?TeacherStayTime * * @param oid Empl Oid * @return List of tw.edu.chit.model.Empl Object */ public List<TeacherStayTime> getStayTimeByEmplOid(Integer oid, String year, String term) { Session session = null; try { session = getHibernateTemplate().getSessionFactory().getCurrentSession(); } catch (Exception e) { session = getHibernateTemplate().getSessionFactory().openSession(); } Empl empl = (Empl) session.get(Empl.class, oid); Hibernate.initialize(empl.getStayTime()); List<TeacherStayTime> ret = new LinkedList<TeacherStayTime>(); for (TeacherStayTime tst : empl.getStayTime()) { if (year.equalsIgnoreCase(tst.getSchoolYear()) && term.equalsIgnoreCase(tst.getSchoolTerm())) ret.add(tst); } return ret; } /** * Empl Oid?LifeCounseling * * @param oid Empl Oid * @return List of tw.edu.chit.model.Empl Object */ public List<LifeCounseling> getLifeCounselingByEmplOid(Integer oid) { Session session = getHibernateTemplate().getSessionFactory().getCurrentSession(); Empl empl = (Empl) session.get(Empl.class, oid); Hibernate.initialize(empl.getLifeCounseling()); return empl.getLifeCounseling(); } public void removeWWPassByUsername(String username) { executeSQL("delete from WwPass where username = '" + username + "'"); } public void updateWWPassUsername(String oldUsername, String newUsername) { executeSQL("update wwpass set username = '" + newUsername + "' where username = '" + oldUsername + "'"); } public void updateWWPassPassword(String username, String password) { executeSQL("update wwpass set password = '" + password.replaceAll("'", "\'") + "' where username = '" + username + "'"); } public void updateWWPassInformixPassword(String username, String password) { executeSQL("update wwpass set informixPass = '" + password.replaceAll("'", "\'") + "' where username = '" + username + "'"); } public void createWWPass(String username, String password, String priority) { // TODO ? executeSQL("insert into wwpass (username, password, priority, informixPass) " + "values ('" + username + "', '" + password + "', '" + priority + "', '" + password + "')"); } public void updateStudentDiviByClass(String classNo, String groupId) { executeSQL("UPDATE stmd SET divi = '" + groupId + "' WHERE depart_class = '" + classNo + "'"); } public void deleteClassInChargeByEmpOid(Integer empOid) { executeSQL("DELETE FROM ClassInCharge WHERE EmpOid = " + empOid.toString()); } public void deleteClassInChargeByEmpOidClassNoPattern(Integer empOid, String classNoPattern, String authorityTarget) { executeSQL("DELETE FROM ClassInCharge WHERE EmpOid = " + empOid.toString() + " AND ClassNo LIKE '" + classNoPattern + "' AND ModuleOids = '" + authorityTarget + "'"); } public void deleteUnitBelongByEmpOidUnitNo(Integer empOid, String unitNo) { executeSQL( "DELETE FROM UnitBelong WHERE EmpOid = " + empOid.toString() + " AND UnitNo = '" + unitNo + "'"); } /** * Empl?ClassCadre * * @param empl tw.edu.chit.model.Empl object * @return java.util.List List of ClassCadre objects */ public List<ClassCadre> findClassCadreByEmpl(Empl empl) { Session session = getHibernateTemplate().getSessionFactory().getCurrentSession(); // Back to Persistent stauts session.update(empl); Hibernate.initialize(empl.getClassCadre()); // session.close(); return empl.getClassCadre(); } /** * Oid?Clazz * * @param oid Clazz Oid * @return tw.edu.chit.model.Clazz object */ public Clazz findClassByOid(Integer oid) { return (Clazz) getHibernateTemplate().get(Clazz.class, oid); } /** * Empl Oid??ClassCadre * * @param empl tw.edu.chit.model.Empl object * @param classNo ? * @return java.util.List List of ClassCadre objects */ @SuppressWarnings("unchecked") public List<ClassCadre> findClassCadreByClassNo(Empl empl, String classNo) { String hql = "from ClassCadre cc where cc.empl = ? and cc.classNo = ?"; return getHibernateTemplate().find(hql, new Object[] { empl, classNo }); } /** * Oid?Student * * @param oid Student Oid * @return tw.edu.chit.model.Student object */ public Student findStudentByOid(Integer oid) { return (Student) getHibernateTemplate().get(Student.class, oid); } /** * TeacherStayTime * * @param tsts tw.edu.chit.model.Empl object */ public void deleteStayTimeByEmpl(List<TeacherStayTime> tsts) { HibernateTemplate ht = getHibernateTemplate(); for (TeacherStayTime tst : tsts) ht.delete(tst); // Empl empl = tsts.get(0).getEmpl(); // empl.setStayTime(null); } public List<Clazz> findClassesByCampusSchoolDeptNo(String campusNo, String schoolNo, String deptNo) { return getHibernateTemplate().find("from Clazz c " + "where c.campusNo = '" + campusNo + "'" + " and c.schoolNo = '" + schoolNo + "'" + " and c.deptNo = '" + deptNo + "'"); } public List<Clazz> findClassesByCampusSchoolNo(String campusNo, String schoolNo) { return getHibernateTemplate().find("from Clazz c " + "where c.campusNo = '" + campusNo + "'" + " and c.schoolNo = '" + schoolNo + "'"); } public List<Clazz> findClassesByCampusNo(String campusNo) { return getHibernateTemplate().find("from Clazz c where c.campusNo = '" + campusNo + "'"); } /** * Used to authenticate parent login * * @param idno student's ID * @param birthday a serial like "780329" which means 1989 Mar 29th * @param parentName * @return */ public Student findStudentByIdnoBirthdayParentName(String idno, Date birthday, String parentName) { List<Student> students = getHibernateTemplate().find("from Student s where s.idno = ? and s.birthday = ?", new Object[] { idno, birthday }); if (students.size() == 0) { return null; } else { return students.get(0); } } /** * ?Unit?CodeEmpl * * @param unit Unit * @return tw.edu.chit.model.CodeEmpl object */ @SuppressWarnings("unchecked") public CodeEmpl getCodeEmplBy(String unit) { String hql = "FROM CodeEmpl ce WHERE ce.category = 'UnitTeach' " + "AND ce.idno2 = ?"; List<CodeEmpl> codeEmpls = getHibernateTemplate().find(hql, new Object[] { unit }); if (!codeEmpls.isEmpty()) return codeEmpls.get(0); else return null; } /** * ?Unit?Empl * * @param unit Unit * @return java.util.List List of Empl objects */ @SuppressWarnings("unchecked") public List<Empl> getTeacherByUnit(String unit) { String hql = "FROM Empl e WHERE e.unit = ?"; return getHibernateTemplate().find(hql, new Object[] { unit }); } /** * ? * * @param year * @return java.util.List List of AbilityExamine Objects */ @SuppressWarnings("unchecked") public List<AbilityExamine> getAbilityExamineBySchoolYear(String year) { String hql = "FROM AbilityExamine WHERE schoolYear = ?"; return getHibernateTemplate().find(hql, new Object[] { new Integer(year) }); } /** * ? * * @param no * @return AbilityExamine tw.edu.chit.model.AbilityExamine Object */ @SuppressWarnings("unchecked") public AbilityExamine getAbilityExamineByNo(Integer no) { String hql = "FROM AbilityExamine WHERE no = ?"; List<AbilityExamine> aes = getHibernateTemplate().find(hql, new Object[] { no }); if (!aes.isEmpty()) return aes.get(0); else return null; } /** * ? * * @param studentNo * @param abilityNo * @return java.util.List List of StdAbility Objects */ @SuppressWarnings("unchecked") public List<StdAbility> getStudentAbilityByStudentNoAndAbilityNo(String studentNo, String abilityNo) { String hql = "FROM StdAbility WHERE studentNo = ?"; Object[] params = null; if (StringUtils.isNotBlank(abilityNo)) { hql += " AND abilityNo = ?"; params = new Object[] { studentNo, Integer.valueOf(abilityNo) }; } else params = new Object[] { studentNo }; return getHibernateTemplate().find(hql, params); } /** * ? * * @param schoolYear * @param schoolTerm * @param studentNo * @param skillCode * @return */ @SuppressWarnings("unchecked") public List<StdSkill> getStdSkillsBy(String schoolYear, String schoolTerm, String studentNo, String skillCode) { String hql = "FROM StdSkill WHERE studentNo = ? AND schoolYear = ? " + "AND schoolTerm = ?"; Object[] params = null; if (StringUtils.isNotBlank(skillCode)) { hql += " AND licenseCode = ? ORDER BY studentNo"; params = new Object[] { studentNo, schoolYear, schoolTerm, skillCode }; } else { hql += " ORDER BY studentNo"; params = new Object[] { studentNo, schoolYear, schoolTerm }; } return getHibernateTemplate().find(hql, params); } /** * * @param recruitSchool * @return */ @SuppressWarnings("unchecked") public List<RecruitSchool> getRecruitSchoolsBy(RecruitSchool recruitSchool) { return getHibernateTemplate().findByExample(recruitSchool); } @SuppressWarnings("unchecked") public List<DtimeClass> getEmplCourseInfo(String term, String idno, int weekday) { String hql = "SELECT dc FROM Dtime d, DtimeClass dc " + "WHERE d.oid = dc.dtimeOid " + "AND d.sterm = ? AND d.techid = ? AND dc.week = ?"; return getHibernateTemplate().find(hql, new Object[] { term, idno, weekday }); } @SuppressWarnings("unchecked") public List<DtimeClass> getEmplCourseInfo4DtimeTeacher(String term, String idno, int weekday) { String hql = "SELECT dc FROM Dtime d, DtimeClass dc, DtimeTeacher dt " + "WHERE d.oid = dc.dtimeOid AND d.oid = dt.dtimeOid " + "AND d.sterm = ? AND dt.teachId = ? AND dc.week = ?"; return getHibernateTemplate().find(hql, new Object[] { term, idno, weekday }); } /** * * * @param sa tw.edu.chit.model.StdAbility Object */ public void saveStudentAbility(StdAbility sa) { saveObject(sa); } /** * ? */ public List query(String hql) { return getHibernateTemplate().find(hql); } /** * * @param hql * @param values * @return * @throws DataAccessException */ @SuppressWarnings("unchecked") public List query(String hql, Object[] values) throws DataAccessException { if (values != null) return getHibernateTemplate().find(hql, values); else return query(hql); } /** * * @param entity * @param criterion * @return * @throws DataAccessException */ @SuppressWarnings("unchecked") public List getSQLWithCriteria(Class entity, Criterion... criterion) throws DataAccessException { DetachedCriteria detachedCriteria = DetachedCriteria.forClass(entity); for (Criterion c : criterion) detachedCriteria.add(c); return getHibernateTemplate().findByCriteria(detachedCriteria); } /** * * @param entity * @param example * @param criterion * @return * @throws DataAccessException */ @SuppressWarnings("unchecked") public List getSQLWithCriteria(Class entity, Example example, Criterion... criterion) throws DataAccessException { DetachedCriteria criteria = DetachedCriteria.forClass(entity).add(example); for (Criterion c : criterion) criteria.add(c); return getHibernateTemplate().findByCriteria(criteria); } /** * ? */ public void deleteBy(Object o) { getHibernateTemplate().delete(o); } /** * ? */ public void save(Object o) { getHibernateTemplate().save(o); } /** * * * @param student tw.edu.chit.model.Student * @return java.util.List List of Student Objects */ @SuppressWarnings("unchecked") public List<Student> getStudentsBy(Student student) { Session session = getHibernateTemplate().getSessionFactory().getCurrentSession(); return session.createCriteria(Student.class).add(Example.create(student).enableLike(MatchMode.START)) .addOrder(Order.asc("departClass")).list(); } /** * * * @param student tw.edu.chit.model.Graduate * @return java.util.List List of Graduate Objects */ @SuppressWarnings("unchecked") public List<Graduate> getGraduatesBy(Graduate graduate) { Session session = getHibernateTemplate().getSessionFactory().getCurrentSession(); return session.createCriteria(Graduate.class).add(Example.create(graduate).enableLike(MatchMode.START)) .addOrder(Order.asc("departClass")).list(); } /** * * @param empl * @return * @throws DataAccessException */ @SuppressWarnings("unchecked") public List<Empl> getEmplsBy(Empl empl) throws DataAccessException { return getHibernateTemplate().findByExample(empl); } /** * * @param workShifts * @return */ @SuppressWarnings("unchecked") public List<Empl> getEmplByWorkShift(String[] workShifts) throws DataAccessException { Session session = getHibernateTemplate().getSessionFactory().getCurrentSession(); List<Empl> empls = session.createCriteria(Empl.class).add(Restrictions.isNotNull("workShift")) .add(Restrictions.in("workShift", workShifts)).list(); return empls; } /** * Student * * @param image * @return */ @SuppressWarnings("unchecked") public StdImage getStdImageBy(StdImage image) { List<StdImage> list = getHibernateTemplate().findByExample(image); if (!list.isEmpty() && list.size() == 1) return list.get(0); else return null; } @SuppressWarnings("unchecked") public List<ContractTeacher> getContractTeacherBy(ContractTeacher contractTeacher) throws DataAccessException { return getHibernateTemplate().findByExample(contractTeacher); } @SuppressWarnings("unchecked") public List<ClassInCharge> getClassInChargeBy(ClassInCharge classInCharge) throws DataAccessException { return getHibernateTemplate().findByExample(classInCharge); } @SuppressWarnings("unchecked") public List<DeptCode4Yun> getDeptCode4YunBy(DeptCode4Yun deptCode4Yun) throws DataAccessException { return getHibernateTemplate().findByExample(deptCode4Yun); } @SuppressWarnings("unchecked") public List<Aborigine> getAborigineBy(Aborigine aborigine) throws DataAccessException { return getHibernateTemplate().findByExample(aborigine); } @SuppressWarnings("unchecked") public List<FeeCode> getFeeCodeBy(FeeCode feeCode) throws DataAccessException { return getHibernateTemplate().findByExample(feeCode); } public List<CodeEmpl> getAllUnit() throws DataAccessException { List<CodeEmpl> ret = findCodeEmplByCategory("Unit"); ret.addAll(findCodeEmplByCategory("UnitTeach")); return ret; } @SuppressWarnings("unchecked") public List<Rcact> getRcactsBy(Rcact rcact) throws DataAccessException { return getHibernateTemplate().findByExample(rcact); } @SuppressWarnings("unchecked") public List<Rcproj> getRcprojsBy(Rcproj rcproj) throws DataAccessException { return getHibernateTemplate().findByExample(rcproj); } @SuppressWarnings("unchecked") public List<Rcjour> getRcjoursBy(Rcjour rcjour) throws DataAccessException { return getHibernateTemplate().findByExample(rcjour); } @SuppressWarnings("unchecked") public List<Rcconf> getRcconfsBy(Rcconf rcconf) throws DataAccessException { return getHibernateTemplate().findByExample(rcconf); } @SuppressWarnings("unchecked") public List<Rcbook> getRcbooksBy(Rcbook rcbook) throws DataAccessException { return getHibernateTemplate().findByExample(rcbook); } @SuppressWarnings("unchecked") public List<Rcpet> getRcpetsBy(Rcpet rcpet) throws DataAccessException { return getHibernateTemplate().findByExample(rcpet); } @SuppressWarnings("unchecked") public List<Rchono> getRchonosBy(Rchono rchono) throws DataAccessException { return getHibernateTemplate().findByExample(rchono); } /** * ?? * * @param studentNo * @return */ public Graduate findGstudentByStudentNo(String studentNo) { return (Graduate) getHibernateTemplate().find("FROM Graduate WHERE studentNo='" + studentNo + "'").get(0); } /** * ? */ public WwPass findWWPassByAccountPassword(String account) { List users = getHibernateTemplate().find("from WwPass w where w.username = ? ", new Object[] { account }); if (users.size() == 0) { return null; } else { return (WwPass) users.get(0); } } }