【问题标题】:Default isolation level in Spring FrameworkSpring Framework 中的默认隔离级别
【发布时间】:2018-08-22 20:26:11
【问题描述】:

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

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

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

我是 Spring 的新手,只是想让自己对事务感到满意。

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

【问题讨论】:

    标签: database spring isolation-level


    【解决方案1】:

    根据docs (Isolation.DEFAULT),它使用

    使用底层数据存储的默认隔离级别。

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

    @Transactional(propagation=Propagation.REQUIRES_NEW, isolation=Isolation.SERIALIZABLE)
    

    【讨论】:

    • 没错,但请确保您确实需要 REQUIRES_NEW 和 SERIALIZABLE。这些通常仅在管理您自己的序列之类的情况下才需要。默认值应该适合更新。
    • @beny23,所以如果我是对的,我的应用程序将使用 oracle 数据库设置的默认隔离级别。正确吗?
    猜你喜欢
    • 2011-09-13
    • 1970-01-01
    • 2014-10-05
    • 1970-01-01
    • 2021-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-21
    相关资源
    最近更新 更多