gpt4 book ai didi

Java持久性内存泄漏

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:17:07 26 4
gpt4 key购买 nike

我的表中有 100 万行,我想获取所有行。但是当我尝试通过分页获取所有带有 jpa 的行时,我得到了 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();
}

最佳答案

因为您无论如何都使用 native SQL,所以您不能直接在您的数据库中指定 LIMIT :counter, 1000(或者 ROWNUM BETWEEN :counter AND 1000,如果使用 Oracle) SQL语句?

关于Java持久性内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5675184/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com