我对EntityManager的用法有疑问。
我读到这是不明智的,在单个线程中为每个简单的数据库调用打开和关闭EntityManager!

每个DAO方法都配备一个EntityManager还是每个DAO方法都配备一个EntityManager更好?

最佳答案

应该创建EntityManager,执行“工作单元”,然后关闭。

http://docs.jboss.org/hibernate/stable/entitymanager/reference/en/html_single/#d0e980

一个工作单元将类似于:插入,更新,删除或更复杂的业务逻辑。您应该为每个方法获得一个新的EntitiyManager实例,因为每个方法都应包含一个工作单元。

更新:还有扩展EntityManager的概念,只要您的应用程序正在运行或会话处于打开状态,它将保持打开状态。不过,这将由容器管理。

关于java - 每个DAO方法的EntityManager,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17008421/

10-11 21:41