我有一个后续问题: EJB 3.1 容器管理并发与同步
锁是仅防止对持久性上下文中的数据的并发访问等,还是还为私有字段提供同步?
最容易想象java.util.concurrent.ReadWriteLock容器正在调用的 per-beanlock()以及在orunlock()上的方法调用,具体取决于为方法配置的内容。因此,实例变量受到保护。readLock()writeLock()@Lock
但是,请注意容器管理的@PersistenceContext字段不是“共享”状态,因为容器实际上注入了一个代理对象。该代理上的每个方法调用EntityManager都将委托给每个事务EntityManager。由于事务不是跨线程共享的,因此即使 bean@ConcurrencyManagement(BEAN)在没有其他同步的情况下使用也是线程安全的。