我正在尝试使用ScrollableResults从数据库中获取数据。我的部分代码如下:
List list = null;
ScrollableResults items = null;
String sql = " from " + topBO.getClass().getName(); // topBO is my parent class so i pass the any of my child class name .
StringBuffer sqlQuery = new StringBuffer(sql);
Query query = sessionFactory.getCurrentSession().createQuery(sqlQuery.toString());
items = query.scroll();
int i = 0;
TopBO topBO;
while(items.next())
{
topBO= (TopBO) items.get()[i];
list.add(TopBO2); // got the exception at this line.
i++;
topBO= null;
}
items.close();
如果我运行上面的代码,我会收到运行时错误,如java.lang.NullPointerException
答案 0 :(得分:0)
我认为topBO= (TopBO) items.get()[i];
导致问题。
我建议你使用像这样的查询结果集变换器
Query query = sessionFactory.getCurrentSession().createQuery(sqlQuery.toString());
list=query.setResultTransformer(Transformers.aliasToBean(YourClassName.class)).list();
答案 1 :(得分:0)
您正尝试在列表中添加未初始化的值。
它可以帮助你:
List list = new ArrayList();
替换为
List list = null;