接下来我们看一下调用者方法的例子
- @Service
- public class BarServiceImpl implements BarService{
- @Autowired
- private FooService fooService;
- // 有事务
- @Override
- @Transactional(rollbackFor = Exception.class)
- public void hasTransactional() throws RollbackException {
- // 调用者有事务,抛异常 被调用者无异常
- fooService.testRequiredNoException();
- throw new RollbackException();
- }
- // 无事务
- @Override
- public void noTransactional() throws RollbackException {
- // 调用者无事务,不抛异常 被调用者有异常
- fooService.testRequiredHasException();
- }
- }
此时我们在程序调用时进行查询
- String noException = Global.REQUIRED_NO_EXCEPTION;
- String hasException = Global.REQUIRED_HAS_EXCEPTION;
- try {
- barService.noTransactional();
- }catch (Exception e){
- log.info("第一种情况 {}",
- jdbcTemplate
- .queryForObject("SELECT COUNT(*) FROM FOO WHERE BAR='"+hasException+"'", Long.class));
- }
- try {
- barService.hasTransactional();
- }catch (Exception e){
- log.info("第二种情况 {}",
- jdbcTemplate
- .queryForObject("SELECT COUNT(*) FROM FOO WHERE BAR='"+noException+"'", Long.class));
- }
(编辑:成都站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|