结果集是.next()第一次迭代时的闭合异常

问题描述 投票:1回答:1

我无法弄清楚为什么我的结果集抛出异常..在调试中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());
}
}
java exception resultset cucumber-jvm
1个回答
1
投票

我的猜测是要么使用Spring 2,要么使用它的一些专有分支。 API doc for the HibernateTemplate说:

允许返回结果对象,即域对象或域对象的集合。

您的回调应该处理resultSet上的所有处理并填充域对象,然后返回域对象(在本例中为objectList)。在调用execute之前,resultSet将关闭。

回调的关键在于回调可以指定需要发生的逻辑,而执行回调的事情可以管理和清理资源。结果集特别不是可以传递的数据持有者,它们通常需要尽快使用和关闭。所以我希望一旦回调完成,框架就会关闭resultSet。

© www.soinside.com 2019 - 2024. All rights reserved.