spring相同的事务隔离注解,在不同的数据库上的效果是否一样?

由于不同的数据库相同的隔离级别的效果是不太一样的,如mysql的RR级别可以避免幻读,而其他的就不一定可以。
那么在使用相同的注解@Transactional(isolation = Isolation.隔离级别),用在不同的数据库上,其隔离的效果是否完全相同?

即:spring的事务隔离注解底层是依托所使用的数据库来控制吗?(效果因所用数据库不同而不同)还是spring自己有一套控制办法?(使用任何数据库效果都一样)

spring中注解指定的隔离级别对不同数据库有不同的效果,甚至可能没有效果。不同的数据库底层设计不同,支持的隔离级别也不同,即使是同名的隔离级别,实际的作用效果也不太可能完全一致。
spring没有自己的隔离级别控制方案,隔离级别完全依赖于数据库支持哪些级别。

该回答引用自ChatGPT

Spring的事务隔离注解底层并不是依托所使用的数据库来控制的。Spring框架自己有一套控制办法来实现事务隔离级别的控制,不受不同数据库的影响。因此,在使用相同的注解@Transactional(isolation = Isolation.隔离级别)时,其隔离的效果应该是相同的,无论使用的是哪种数据库。

比如同样是MySQL,InnoDB引擎就支持事务,但是MySIAM引擎就不支持事务,你配置了也没用

ChatGPT 的回答 跟 各位老师的回答截然相反