3
我试图用Spring和JPA/Hibernate实现一个悲观的离线锁。我的数据库中有一个锁表,用于存储所有锁(锁定的记录的ID,时间戳和用户)。 LockManager服务接口如下所示:悲观离线锁(Java,Spring)
public interface LockManager {
@Transactional(isolation=Isolation.SERIALIZABLE)
public Boolean TestAndGetLock(Application app, User user);
public void realeaseLock(Application app, User user);
}
TestAndGetLock方法首先测试记录上是否存在锁定。如果有,则返回true并终止。如果没有,则返回false并创建锁(在锁表中写入新的锁)。只有这样,webapp才会真正启动业务事务(在这种情况下,它显示了作为参数传递的应用程序的编辑表单)。
你能告诉我这个设计是否正确吗?所以这里
public boolean lock(Application app, User user);
public void unlock(Application app, User user);
的名字会更清楚:
自定义隔离级别通常不适用于jpa/hibernate事务管理器。 – Bozho 2010-11-19 13:24:53
他们为什么不呢?他们不支持? – 2010-11-19 13:39:22