ORMLite的迭代器在hasNext()== false之后忘记所有数据

时间:2015-07-13 14:18:19

标签: iterator ormlite

代码示例:

//...
CloseableIterator<Order> iterator = dao.iterator();

iterator.first(); // Object
iterator.current(); // Object

iterator.hasNext(); // false (only 1 record in table "Order")

iterator.current(); // null (?!)
iterator.first(); // null (?!!)

此外,iterator.previous()也返回null(如果超过1条记录,则为ofc)。

如何禁止ORMLite的SelectIterator在最后一条记录上调用hasNext()后忘记我的数据?...

2 个答案:

答案 0 :(得分:1)

根据ORMLite的源代码,这是一种正常的无记录不可更改的行为。

答案 1 :(得分:0)

我自己也碰到了这个。我们在Android上使用ORMLite,并且能够使用DatabaseResults成员上可用的方法,可通过调用:

iterator.getRawResults()

在能够执行安全检查计数等操作之前,您必须将其强制转换为适当的类型(取决于它们是否在您的特定实现中可用)