gpt4 book ai didi

Java Hibernate 内存泄漏

转载 作者:行者123 更新时间:2023-11-30 05:14:51 25 4
gpt4 key购买 nike

我正在使用 BlazeDS 开发 Flex 应用程序,并且在 hibernate 中使用 java 从 MySQL 查询时遇到内存泄漏。谁能告诉我如何处理这个内存泄漏?看来每次查询调用 java.exe 都会占用更多内存。

谢谢

我的java示例

factory = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT);
EntityManager em = factory.createEntityManager();

Query find = em.createNamedQuery("Plan.findByStudentId");
find.setParameter("studentId", studentID);

List<Plan> c = find.getResultList();

return c;

最佳答案

我假设在将数据返回到 Flex 后,您的 EntityManager 保持打开状态,这意味着您的 MySQL 连接保持打开状态。这就是内存泄漏最有可能发生的地方。因此 - 关闭您的 EntityManager

在另一条评论中,您说您正在使用 GlassFish。这是一个全新的场景。你的类是 Servlet 吗? EJB? GlassFish 应该管理您的 EntityManager(如果类本身是托管的),因此您不必自己创建或关闭它。在这种情况下,请使用@PersistenceContext注释来注入(inject)EntityManager(而不是使用Persistence.create..)

但是无论如何设置,您都必须执行的操作是启动探查器并查看内存分配的位置。

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

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