java - 结果集在 .next() 第一次迭代时关闭异常

标签 java exception resultset cucumber-jvm

我不明白为什么我的结果集抛出异常.. 调试时Resultset对象不为null,但无法进入if语句 if(resultset.next()) 我不确定我做错了什么.. 谢谢你的帮助。

顺便说一句,我正在通过 cucumber 测试访问此类,但是在现阶段我认为这与问题无关..

相关代码如下:

 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说:

Allows for returning a result object, that is a domain object or a collection of domain objects.

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

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

关于java - 结果集在 .next() 第一次迭代时关闭异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18190788/

相关文章:

java - GUI 编程并从另一个类中调用一个类

java - 在一个类字段中处理一个 Spring bean/接口(interface)的多个实现

java - 插件风格架构与 Mavenised 组件风格

java - 自定义异常是检查异常还是非检查异常?

java - 这是使用 IllegalArgumentException 的正确方法吗?

sql-server-2008 - SQL Server Management Studio 对结果 Pane 中的数据进行排序

php - Zend\Db\ResultSet\ResultSet 对象在哪里存储检索到的数据?

java - gradle 1.6 到 1.11 迁移错误

android - SQLite - 无法打开数据库文件

java - executeQuery(String sql) 函数的返回值可以类型转换为字符串数组吗?