在研究 Spring Boot 中配置事务是,发现一个不明白的问题,在 Service 上使用了 @Transaction 注解,并且 Propagation.NOT_SUPPORTED,结果还是将数据持久化了。
service 代码:
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserRepository UserRepository;
@Transactional(propagation=Propagation.NOT_SUPPORTED, readOnly=true)
@Override
public User createUser(User user) {
user = UserRepository.save(user);
return user;
}
}
Repository 代码:
public interface UserRepository extends JpaRepository<User, Long> {
}
App 启动类代码:
@Configuration
@SpringBootApplication
@EnableTransactionManagement
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}
期待的结果是,createUser 不应该将User 数据持久化!
希望朋友们帮我分析一下这是什么原因引起的呢?
谢谢!