事务隔离级别的遇到的坑
有以下四种隔离级别 1.READ-UNCOMMITTED(读取未提交内容)级别 2.READ-COMMITTED(读取提交内容)级别 3.REPEATABLE-READ(可重读)级别 4.SERIERLIZED(串行化) 。 如果在事务管理器中未设置事务隔离级别,就默认使用数据库的隔离级别,oracle为read_commit(读已提交) public class test { @Autowired private Dao dao; @Transactional(value = "thunderJpaTransactionManager", rollbackFor = Exception.class) public boolean saveAndReadTest() { User user = new User(); user.setId(1); dao.save(user); User user = dao.findById(1); //因为处于同一个事务中,所以是可以实时获取的 ...... } } 同一事务中,是可以读取未提交的数据 那么什么时候是不同的事务呢? 答:A线程调用saveAndReadTest()方法,B线程调用saveAndReadTest()方法,虽然调用的是相同的方法,但是事务是不同的,所以B线程中无法读取A中未提交的数据 我们可以通过dao