我试图通过以下示例清除我对Spring Transaction边界的疑虑.
@Transactional(propagation=Propagation.REQUIRES_NEW)
public void test() {
test1();
test2();
}
@Transactional(propagation=Propagation.NOT_SUPPORTED, readOnly=false)
public void test1() {
this.jdbcTemplate.execute("INSERT INTO TEST VALUES('T', 'C2', 0, 1)");
}
@Transactional(propagation=Propagation.SUPPORTS, isolation=Isolation.READ_UNCOMMITTED, readOnly=true)
public void test2() {
System.out.println(this.jdbcTemplate.queryForInt("select count(*) from TEST"));
}
Run Code Online (Sandbox Code Playgroud)
我想从test1()中隔离test2()方法,每次调用test()时test2()都不应该读取test1()提交的数据.请建议是否可以使用传播或隔离属性来处理此场景.
提前致谢.