Java EntityManagerFactory:在Servlet中使用时是全局实例还是作用域实例?
考虑一个简单的servlet应用程序,我只使用一个globalshared emf:EntityManagerFactory实例,该实例由servlet实例加载的init:void方法初始化。 对于每个请求,我从emf获得一个em:EntityManager,使用它,然后关闭该项。 我刚刚意识到EntityManagerFactory有一个封闭的方法,所以问题是,我应该像对待EntityManager一样为每个请求获得EntityManagerFactory吗?Java EntityManagerFactory:在Servlet中使用时是全局实例还是作用域实例?,java,servlets,jpa,Java,Servlets,Jpa,考虑一个简单的servlet应用程序,我只使用一个globalshared emf:EntityManagerFactory实例,该实例由servlet实例加载的init:void方法初始化。 对于每个请求,我从emf获得一个em:EntityManager,使用它,然后关闭该项。 我刚刚意识到EntityManagerFactory有一个封闭的方法,所以问题是,我应该像对待EntityManager一样为每个请求获得EntityManagerFactory吗? 使用EntityManager的
使用EntityManager的最佳实践是什么?可以为每个请求获取->执行->关闭吗?您应该继续使用单个EntityManagerFactory。在servlet的destroy方法中调用它是close方法。看这里我想这是你的答案:看这里是你的答案如果你想在相同上下文的不同servlet上使用相同的EntityManagerFactory,请看,这也回答了你的问题。@okiharaherbst谢谢dude@user35736644892谢谢,伙计:DEntityManagerFactory是非常昂贵和重量级的对象,它们应该在应用程序启动时打开。这就是我刚才说的。谢谢你的帮助。当用户3…92的评论和你的答案一样的时候,这很酷,哈哈。