gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 07:28:18 25 4
gpt4 key购买 nike

我不明白为什么我的结果集抛出异常..调试时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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com