【问题标题】:Set isolation level in Spring Boot在 Spring Boot 中设置隔离级别
【发布时间】:2019-03-22 08:44:20
【问题描述】:

我使用 Java、Spring Boot、CrudRepository 和 Postgresql。

如何在 Spring Boot 的 CRUD Repo 中设置隔离级别,或者如何在整个 Spring Boot 应用程序中设置隔离级别。

【问题讨论】:

  • 请阅读this。它在 Boot 和非 Boot Spring 应用程序中的工作方式相同。

标签: java spring-boot jpa


【解决方案1】:

Spring creates proxies for all classes@Transactional 注释 – 在 class or on any of the methods 上。代理允许框架在调用方法之前和之后注入事务逻辑——主要用于启动和提交事务。

如果事务 bean 正在实现接口,默认情况下代理将是 Java 动态代理。这意味着只有通过代理传入的外部方法调用才会被拦截——任何自调用调用都不会启动任何事务——即使该方法带有 @Transactional 注释。


隔离:

DEFAULT:使用底层数据库的默认隔离级别。

Read Uncommitted: 允许脏读

Read Committed:不允许脏读

Repeatable Read:如果在同一个事务中读取一行两次,结果总是一样的

Serializable: 按顺序执行所有事务

您应该参考this Question了解更多详情。

概览HereHereHere

【讨论】:

    猜你喜欢
    • 2018-04-30
    • 2020-06-07
    • 2015-09-09
    • 2015-10-16
    • 2021-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多