我只想回滚内部方法中的内容。
在代码段下方:
@Test
public void TransactionsTest() {
Declaration declaration = declarationRepos.findOne(2l);
declaration.setCode("1004");
declarationRepos.save(declaration);
try {
persist(declaration);
} catch (NotEnoughInformationException e) {
e.printStackTrace();
}
System.out.println(declaration);
}
@Transactional(rollbackFor = NotEnoughInformationException.class)
private void persist(Declaration declaration) throws NotEnoughInformationException {
declaration.setCode("1005");
declarationRepos.save(declaration);
throwExcep();
}
public void throwExcep() throws NotEnoughInformationException {
throw new NotEnoughInformationException();
}
NotEnoughInformationException扩展了Exception。
我希望在抛出异常时回滚persist方法,因此代码值必须为" 1004"。
但是没有发生任何事情,提交了非法行为,而且代码值是" 1005"。
其他,当我这样做时:
@Test
@Transactional(rollbackFor = NotEnoughInformationException.class)
public void TransactionsTest() {
它有效,但它不是我想要的。
提前致谢。