您的代码可正常使用 Oracle 但随着 MySQL 它有点不同。在此处阅读MySql中的隔离级别
Oracle
MySQL
https://blog.pythian.com/understanding-mysql-isolation-levels-repeatable-read/
我相信如果你改变了 isolation level 你的方法 Read committed 它应该像默认的MySql一样工作 Repeatable-read 这是有点不同的处理。
isolation level
Read committed
Repeatable-read
@Transactional(Isolation.READ_COMMITTED) public User update(Long id, User update)