我无法弄清楚为什么我的结果集抛出异常..在调试中Resultset对象不为null,但它不能输入if语句if(resultset.next())我不知道我做错了什么..谢谢任何帮助。
顺便说一句,我通过黄瓜测试访问这个课程,但在这个阶段我不认为这与问题有关..
这是相关代码:
input = new Object[]{nEventID, nEventID, nAccountID};
callback = new NamedQueryStatementCallback("GET_ACTIVE_EVENT_ENTITLEMENT_DETAILS", input, false);
resultSet = (ResultSet)getHibernateTemplate().execute(callback);
if (resultSet != null)
{
outputList = new ArrayList();
if (resultSet.next()) //here is where exception gets thrown - on first iteration, so it never enters branch
{
do
{
//create object list with data
}while (resultSet.next());
}
}
我的猜测是要么使用Spring 2,要么使用它的一些专有分支。 API doc for the HibernateTemplate说:
允许返回结果对象,即域对象或域对象的集合。
您的回调应该处理resultSet上的所有处理并填充域对象,然后返回域对象(在本例中为objectList)。在调用execute之前,resultSet将关闭。
回调的关键在于回调可以指定需要发生的逻辑,而执行回调的事情可以管理和清理资源。结果集特别不是可以传递的数据持有者,它们通常需要尽快使用和关闭。所以我希望一旦回调完成,框架就会关闭resultSet。