我使用Java,Spring Boot,CrudRepository和Postgresql。
如何在Spring Boot的CRUD存储库中设置隔离级别,或者如何在整个Spring Boot应用程序中设置隔离级别。
答案 0 :(得分:0)
在{{1}上,用creates proxies
注释的all
的{{1}}的春天classes
。代理允许框架在调用方法之前和之后注入事务逻辑,主要用于启动和提交事务。
如果事务Bean正在实现接口,则默认情况下,代理将是Java动态代理。这意味着,即使通过@Transactional注释了该方法,也只会拦截通过代理传入的外部方法调用-任何自调用不会启动任何事务。
隔离:
@Transactional
使用基础数据库的默认隔离级别。
class or on any of the methods
允许脏读
DEFAULT:
不允许脏读
Read Uncommitted:
如果在同一事务中两次读取一行,结果将始终相同
Read Committed:
按顺序执行所有事务
有关更多详细信息,请参阅this Question。