我在表中有1M行,我想获得所有这些行。但是,当我试图通过分页获得所有与jpa的行,然后我得到java堆错误。你认为我错过了什么吗?任何意见java持久性内存泄漏
int counter = 0;
while (counter >= 0) {
javax.persistence.EntityManager em = javax.persistence.Persistence
.createEntityManagerFactory("MyPU")
.createEntityManager();
Query query = em.createQuery("select m from mytable m");
java.util.Collection<MyEntity> data = query
.setFirstResult(counter).setMaxResults(1000).getResultList();
for(MyEntity yobj : data){
System.out.println(obj);
}
counter += 1000;
data.clear();
em.clear();
em.close();
}
您是否尝试使用-Xmx增加堆大小的最大值?请参阅:http://javahowto.blogspot.com/2006/06/6-common-errors-in-setting-java-heap.html – Teetrinker 2011-04-15 10:47:24