我在我的代码中使用以下语句。
entityManager.lock(员工, LockModeType.WRITE);
我正在使用 JPA 1.0 并使用 EJB 3.0 无状态会话 Bean 来管理事务,也使用 SQL Server 作为数据库。
目前,我的名为 Entity 的实体中没有任何版本列。
我们是否需要在事务完成后显式释放锁,或者 EJB 已经处理了这个问题?
我在我的代码中使用以下语句。
entityManager.lock(员工, LockModeType.WRITE);
我正在使用 JPA 1.0 并使用 EJB 3.0 无状态会话 Bean 来管理事务,也使用 SQL Server 作为数据库。
目前,我的名为 Entity 的实体中没有任何版本列。
我们是否需要在事务完成后显式释放锁,或者 EJB 已经处理了这个问题?
java EE 6 有LockModeType.NONE(JPA 2 有),你可以手动释放锁:em.lock(obj, LockModeType.NONE)
我认为事务提交应该释放为提交的对象获取的所有锁。EJB 在那里没有做任何事情,一切都交给 jpa 并且它是 impl。
也检查一下