优化前的代码:
public List findExamGuideByStaff_bak(int belong_exam_id, int belong_table_id) {
String hql="from ExamGuide e where e.belong_exam_id=? and e.belong_table_id=? order by e.guide_no";
List data=null;
Session session=super.getHibernateSession();
Query query=session.createQuery(hql);
query.setInteger(0, belong_exam_id);
query.setInteger(1, belong_table_id);
data=query.list();
if(data!=null&&data.size()!=0){
return data;
}
return null;
}
以下是优化后的代码:其中ExamGuide和ExamGuideExt是一对一关系,ExamGuide有个属性examGuideExt指向ExamGuideExt对象
/**
* 根据员工配置belong_exam_id,belong_table_id查出该员工的的ExamGuide数据和ExamGuideExt数据
* 查找指标
* @return
*/
public List findExamGuideByStaff(int belong_exam_id, int belong_table_id) {
String hql="select e,e.examGuideExt from ExamGuide e where e.belong_exam_id=? and e.belong_table_id=? order by e.guide_no";
List data=new ArrayList();
Session session=super.getHibernateSession();
Query query=session.createQuery(hql);
query.setInteger(0, belong_exam_id);
query.setInteger(1, belong_table_id);
List tmpList=query.list();
for(int i=0;i<tmpList.size();i++)
{
Object[] objs=(Object[])tmpList.get(i);
ExamGuide eg=(ExamGuide)objs[0];
eg.setExamGuideExt((ExamGuideExt)objs[1]);
data.add(eg);
}
if(data!=null&&data.size()!=0){
return data;
}
return null;
}