我想打开一个新交易并使用我在第一笔交易中所做的所有更改。但是从第二笔交易我无法读取内部实体
class A {
@Autowirde
private B b;
@Transactional
public test() {
ProgramRole programRole = new ProgramRole();
programRoleRepo.save(programRole);
Program program = new Program();
program.setProgramRole(programRole);
programRepo.save(program); // Let say id is 1
Program p = programRepo.getOne(1);
p.getProgramRole() // Return 'programRole'
b.test();
}
}
@Component
class B {
@Transactional(propagation = Propagation.REQUIRES_NEW, isolation = Isolation.READ_UNCOMMITTED)
public void test() {
Program p = programRepo.getOne(1);
p.getProgramRole() // Return null. Why?
}
}