我正在尝试在servlet中获取jpa EntityManager
的实例,如下所示
ApplicationContext context = WebApplicationContextUtils.getRequiredWebApplicationContext(servletContext);
EntityManagerFactory emf = (EntityManagerFactory)context.getBean("entityManagerFactory");
EntityManager em=emf.createEntityManager();
我的问题是,这是在servlet get服务方法中获取EntityManager实例的有效方法。同样,我们应该在上述方法中明确关闭
EntityManagerFactory
/ EntityManager
。 最佳答案
由于您使用的是弹簧,因此理想情况下,应使用另一层(例如DAO)
@PersistenceContext
private EntityManager entityManager;
春天会解决这个问题。
如果您确实需要在servlet中而不是在spring-mvc
@Controller
中进行访问,则可以从应用程序上下文中获取service / dao bean,并在那里使用上述构造。而且,如果出于某些奇怪的原因,您应该手动处理实体管理器-是的,您必须.close()
它。关于java - 从EntityManagerFactory创建EntityManager,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7353470/