在调用List<Long>
时,我们不希望返回PersonDao.getAll()
个ID,而是希望内存中没有整个ID集合。
似乎返回org.springframework.jdbc.support.rowset.SqlRowSet
并迭代此行集将不会保存内存中的每个对象。
这里唯一的问题是我无法将此行强制转换为我的实体。
有更好的方法吗?
通常我们想在db
中的每个Person上做一个方法答案 0 :(得分:1)
您可以使用ScrollableResults
遍历结果集,并定期清除会话以处置不需要的对象。来自Hibernate书籍的例子:
ScrollableResults itemCursor = session.createQuery("from Item").scroll();
int count=0;
while ( itemCursor.next() ) {
Item item = (Item) itemCursor.get(0);
modifyItem(item);
if ( ++count % 100 == 0 ) {
session.flush();
session.clear();
}
}
有关更多示例和详细信息,请参阅the Hibernate reference。