본문 바로가기
카테고리 없음

Transaction

by 경주초이 2020. 3. 2.
@Controller
@RequestMapping("di/web/privatetutor")
public class PrivateTutorProfileController extends BaseController {

  // 트랜잭션
  @Resource(name = "txManager")
  protected DataSourceTransactionManager txManager;

....

  @PostMapping("/insertPrivateTutorInfo")
  public @ResponseBody DefaultVO insertPrivateTutorInfo(

    // 트랜잭션 설정
    DefaultTransactionDefinition def = new DefaultTransactionDefinition();
    def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
    TransactionStatus txStatus = txManager.getTransaction(def);

    try {

....

      // 트랜잭션 성공
      txManager.commit(txStatus);

    } catch (Exception e) {

      // 트랜잭션 실패
      txManager.rollback(txStatus);

    }

}