问题很明显,但我无法找到解决方案......
我将postgresql表中的700k数据迁移到API。
为此,我创建了以下
List<MyData> list = new ArrayList<>();
Filter filter = new Filter();
filter.setPagination(new Pagination());
do {
list = myData.find(filter);
//code that sends this data to the API
//out of scope of the problem
} while(CollectionUtils.isNotEmpty(list));
我正在使用Hibernate查询此数据,如下所示:
@SuppressWarnings("unchecked")
public List<Mensagem> myData(Filter filter {
Criteria criteria = session.createCriteria(MyData.class);
if (filter.getPagination().getQuantity() <= 0) {
filter.getPagination().setQuantity(countMyData());
}
dealWithPagination(filter, criteria);
return criteria.list();
}
问题是每当我在do /中循环时,mydata的所有对象都在堆内分配。
我应该怎么做垃圾收集这些物品?因为似乎do / while没有完成,所以不会收集对象。
任何线索?