1

我无法弄清楚为什么我的结果集抛出异常..Resultset 对象在调试中不为空,但是它无法进入 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());
}
}
4

1 回答 1

1

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

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

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

回调的意义在于回调可以指定需要发生的逻辑,而执行回调的事物可以管理和清理资源。ResultSet 尤其不是可以传递的数据持有者,它们通常需要尽快使用和关闭。所以我希望框架会在回调完成后关闭结果集。

于 2013-08-12T15:28:30.230 回答