我无法弄清楚为什么我的结果集会抛出异常.. 调试时Resultset对象不为null,但是如果(resultset.next())则无法输入if语句 我不确定我做错了什么.. 谢谢你的帮助。
顺便说一句,我正在通过黄瓜测试访问这个课程,但是在这个阶段我不认为这与问题相关..以下是相关代码:
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());
}
}
答案 0 :(得分:1)
我的猜测是使用Spring 2或其中的一些专有分支。 API doc for the HibernateTemplate说:
允许返回结果对象,即域对象或 域对象的集合。
您的回调应该处理resultSet上的所有处理并填充域对象,然后返回域对象(在本例中为objectList)。在调用execute之前,resultSet将关闭。
回调的重点在于回调可以指定需要发生的逻辑,而执行回调的东西可以管理和清理资源。结果集特别不是可以传递的数据持有者,它们通常需要尽快使用和关闭。所以我希望一旦回调完成,框架就会关闭resultSet。