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
'Back-end > Spring-핵심& webMVC' 카테고리의 다른 글
Springboot Swagger- SpringSecurity 연결 설정 (0) | 2022.10.11 |
---|---|
비동기 처리를 위한 ThreadPoolTaskExcutor (0) | 2021.11.14 |
Querystring vs. @PathVariable 이용상 차이점 (0) | 2021.06.07 |
MessageSource 메시지 국제화 처리 (0) | 2021.06.05 |
QueryString, request.getParameter, request.getParameterValues (0) | 2021.06.03 |