Spring Framework中的默认隔离级别

Sek*_*har 21 database spring isolation-level

我在服务层有一个方法,它对数据库执行更新功能.

@Transactional(propagation = Propagation.REQUIRES_NEW)
public void update(final Object obj){
    // some code here
}
Run Code Online (Sandbox Code Playgroud)

现在我想知道Spring框架设置的这个方法的隔离级别是什么?

我是Spring的新手,只是想让自己适应交易.

请分享一些最佳实践和方法来设置隔离级别以避免死锁,从而防止同一用户尝试从不同的浏览器更新其记录.

ben*_*y23 13

根据文档(Isolation.DEFAULT),它使用

使用基础数据存储的默认隔离级别.

当您使用@Transactional注释时,我会在那里设置隔离级别,例如:

@Transactional(propagation=Propagation.REQUIRES_NEW, isolation=Isolation.SERIALIZABLE)
Run Code Online (Sandbox Code Playgroud)

  • 它是READ COMMITTED.请参阅http://www.oracle.com/technetwork/issue-archive/2005/05-nov/o65asktom-082389.html. (2认同)