Back-end/Spring-핵심& webMVC

@transactional annotation

prden 2021. 6. 8. 17:10

DefaultTransactionDefinition def = new DefaultTransactionDefinition();
def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);

// transaction 상태 정보 알려줌 
TransactionStatus status = txManager.getTransaction(def);

// 에러 없으면 commit

   txManager.commit(status);
        } catch (TransactionException ex) {

// 에러 있을 경우 rollback
            txManager.rollback(status);
            LOGGER.error("insertBoard");

public void insertBoard(BoardVO param, List<FileVO> filelist, String[] fileno) {
       
        DefaultTransactionDefinition def = new DefaultTransactionDefinition();
        def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
        TransactionStatus status = txManager.getTransaction(def);
        try {
            if (param.getBrdno() == null || "".equals(param.getBrdno())) {
                sqlSessionTemplate.insert("insertBoard", param);
            } else {
                sqlSessionTemplate.update("updateBoard", param);
            }
            if (fileno != null) {
                HashMap<String, String[]> fparam = new HashMap<String, String[]>();
                fparam.put("fileno", fileno);
                sqlSessionTemplate.insert("deleteBoardFile", fparam);
            }
            for (FileVO f : filelist) {
                f.setParentPK(param.getBrdno());
                sqlSessionTemplate.insert("insertBoardFile", f);
            }
            txManager.commit(status);
        } catch (TransactionException ex) {
            txManager.rollback(status);
            LOGGER.error("insertBoard");
        }
    }

Transactional annotation 사용법

추가 공부

1. Isolation

 

2. Propagation

https://velog.io/@kdhyo/JavaTransactional-Annotation-%EC%95%8C%EA%B3%A0-%EC%93%B0%EC%9E%90-26her30h

 

[Java]@Transactional Annotation 알고 쓰자

초반 @Transactional 어노테이션에 대해 자세히 알아보지 않고,막연히 롤백때 사용한다고 하여 SQL C,U,D 를 할 때마다 메소드 위에 붙여서 사용하곤 하였다.하지만, 내 코드를 보신 선임께서 단지 @Tran

velog.io

https://data-make.tistory.com/738

 

[Spring] @Transactional 잘 사용해보기

@Transactional 잘 사용해보기 @Transactional 을 사용하고는 있지만.. 잘 모르고 저스트 그냥 사용하고 있다 보니 간단하게라도 탐구를 해볼 필요성을 느끼게 되었다. 그래서.. 오늘도 어김없이 탐정놀

data-make.tistory.com