You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot中无法使用REPEATABLE_READ事务隔离级的原因及疑问

问题解答

为什么无法使用REPEATABLE_READ事务隔离级别?

这是Oracle 11g数据库本身的限制。Oracle 11g仅支持两种事务隔离级别:

  • READ_COMMITTED(默认级别)
  • SERIALIZABLE

它并不支持REPEATABLE_READ级别,所以当你通过Spring设置该级别时,Oracle JDBC驱动直接抛出了不支持的错误:

java.sql.SQLException: READ_COMMITTED et SERIALIZABLE sont les seuls niveaux de transaction valides

(该提示为法语,翻译为:READ_COMMITTED和SERIALIZABLE是仅有的有效事务级别)

Spring Data Repository与PlatformTransactionManager混用是否合法?

这种用法完全合法,且符合Spring事务管理的设计逻辑:

  • 默认配置下,Spring Boot会自动创建JpaTransactionManager作为PlatformTransactionManager的实现,同时自动配置与该事务管理器绑定的EntityManager。
  • 你手动通过PlatformTransactionManager开启的事务,会成为当前线程的事务上下文。Spring Data JPA Repository的操作(比如save)会自动识别并加入到这个已存在的事务中,无需额外配置。

只要你没有自定义不同的PlatformTransactionManager或EntityManager,默认配置下两者是天然兼容的,你的代码逻辑可以正常运行。

内容的提问来源于stack exchange,提问作者Imu Sama

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 11:06:25