您的位置:首页 > 其它

【问题记录】使用getHibernateTemplate().find()方法的get(index)方法

2015-08-11 21:49 513 查看
做SSH项目的时候,写了这样一段代码:

public EmployeeVo getEmpByNo(String empNo) {
		EmployeeVo empVo = null;
		String hql = "from Employee where empNo = ?";
		List<Employee> empList = getHibernateTemplate().find(hql, empNo);
		
		if (empList!=null && empList.size()>0) {
			Employee emp = empList.get(0);
			empVo = new EmployeeVo();
			BeanUtils.copyProperties(emp, empVo);
		}
		return empVo;
	}


这段代码是正确的

但是要注意的是,如下的写法是不正确的:

Employee emp = (Employee) getHibernateTemplate().find(hql, empNo).get(0);


你不能一上来就get(0),因为你还不能确定getHibernateTemplate().find()返回的list是否有结果。

如果没结果,即size=0,此时你却执行get(0),那么就会抛IndexOutOfBoundException异常。

你必须先加上这样一句判断,成功才执行上面的代码:

if (getHibernateTemplate().find(hql, empNo).size() > 0)


考虑周到了,才能避免未知的错误发生!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: