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

做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)

考虑周到了,才能避免未知的错误发生!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值