在 Spring Boot 中,事务默认是可重复读(REPEATABLE_READ)级别,这意味着会加锁。如果你希望在只读事务中不加锁,可以将事务隔离级别设置为读未提交(READ_UNCOMMITTED)。
如果你想要使用只读事务,你可以使用 @Transactional(readOnly = true)
注解来声明事务为只读,但是这并不会改变事务的隔离级别。如果你希望在只读事务中不加锁,你需要将事务隔离级别设置为读未提交(READ_UNCOMMITTED)。这可以通过在配置文件(例如 application.properties)中设置 spring.jpa.properties.hibernate.connection.isolation
属性来实现。例如:
spring.jpa.properties.hibernate.connection.isolation=1
在这种情况下,在只读事务中将不会加锁。
希望这能帮到你!