Spring 手动控制事务

1,253 阅读1分钟
@Autowiredprivate PlatformTransactionManager transactionManager;

    DefaultTransactionDefinition transDefinition = new DefaultTransactionDefinition();
    transDefinition.setPropagationBehavior(DefaultTransactionDefinition.PROPAGATION_REQUIRES_NEW);
    TransactionStatus transStatus = transactionManager.getTransaction(transDefinition);
    try {
      User user = new User();
      user.setId(-1);
      userMapperNew.insert(user);
      user.setId(-2);
      System.out.println(1/0);
      userMapperNew.insert(user);
      transactionManager.commit(transStatus);
      System.out.println("提交事务");
    } catch (Exception e) {
      System.out.println("发生错误,事务回滚");
      transactionManager.rollback(transStatus);
    }