【发布时间】:2014-06-23 08:20:00
【问题描述】:
一个简单的银行应用程序:
注意事项:
- 使用 Spring+JPA 和 EclipseLink 作为 JPA 提供程序实现
- EntityManager 使用 @PersistenceContext 注入 BaseDaoImpl
- DAO 自动装配到服务 bean 中
- @Transactional 注解用于服务方法
问题:
- 是每个 DAO 都有自己的 EntityManager 实例还是共享实例?
- 如果它们是单独的实例,事务如何工作?
- 如果是共享实例,连接何时关闭?在应用程序关闭时?这是否意味着整个应用程序只有一个连接,无论 DAO/实体的数量如何,并且在应用程序生命周期内保持打开状态?
【问题讨论】: