当使用spring@Transactional时,谁最终负责隔离和传播工作,springframework还是数据库



发生了哪一种情况:框架告诉数据库启动事务并使用@Transaction中设置的隔离级别,还是框架处理所有事务,而数据库对此一无所知?

如果数据库完成了工作,那么当您将@Transactional中的隔离设置为数据库不支持的级别时,会发生什么?例如,将其设置为可重复读取,但数据库是oracle?

框架告诉数据库启动事务,并使用@Transactional 中设置的隔离级别

当您将@Transactional中的隔离设置到数据库不支持的级别时会发生什么

最后,它可以归结为设置JDBC驱动程序返回的JDBC连接的隔离级别。我不确定规范中是否有严格的规则(javadoc没有太大帮助(,但我认为JDBC驱动程序会(或者至少应该(抛出SQLException。试试看,你会明白的。

最新更新