gpt4 book ai didi

java - 关闭entityManager的最佳方法

转载 作者:行者123 更新时间:2023-11-30 02:13:40 24 4
gpt4 key购买 nike

我有以下代码:

    public Category findCategoryById(Long id) {
EntityManager em = emf.createEntityManager();
try {
em.getTransaction().begin();
Category category = categoryDAO.findCategoryById(em, id);
em.getTransaction().commit();
return category;
} catch (Exception e) {
throw e;
} finally {
em.close();
}
}

我正在 Controller 中处理异常,但我想确保实体管理器已关闭。我不喜欢我捕获并重新抛出错误。我希望能找到更好的建议。

谢谢

最佳答案

最好的办法就是不必关心它。如果您的实体管理器容器管理的(例如,如果您使用ejbspring并且您没有强制执行特定的 bean/应用程序管理行为),您应该让容器处理事务的打开/关闭,并且通常要担心您的持久性上下文。它更容易、更安全,而且在排除非常特殊的情况下,效果更好。仅在应用程序管理上下文的情况下,您才应直接处理实体管理器的手动关闭,以避免连接池耗尽或其他问题。

关于java - 关闭entityManager的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49314359/

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