작성자 없음
작성자 정보가 삭제된 글입니다.
작성
·
241
0
RestController 가 있습니다
@PostMapping("/request")
public ResponseEntity<> save(someDto dto) throws UnsupportedEncodingException, Exception {
if(isAdmin()){
return new ResponseEntity<>( 어드민이 아닙니다,HttpStatus.BAD_REQUEST);
}
try {
AService.save(dto.toEntity()); // 주문 생성
BService.createEstimate(dto.toEntity()); // 견적 생성
} catch (Exception e) {
return new ResponseEntity<>(저장이 안되었다는 메세지,HttpStatus.BAD_REQUEST);
}
return new ResponseEntity<>(저장이 되었다는 메세지,HttpStatus.OK);
}
AService입니다
@Transactional(rollbackFor = {Exception.class})
public void save(Entity entity) throws Exception{
entityRepo.save(entity);
}
BService입니다
@Transactional(rollbackFor = {Exception.class})
public void createEstimate(Entity entity) throws Exception {
entityRepo.save(entity);
}
위와 같이 rest controller에도 throw exception과 동시에 저장,견적 을 생성하는 서비스를 각각 호출합니다.(서로 다른 클래스)
그런데 그 서비스에도 다 throw exception을 하고 있습니다.
어노테이션으로 Transactional(rollbackFor exception)을 하고 있고요.
위와 같이 코드를 작성하는 방법은 틀린것인가요?
아, 그러셨군요.
ControllerAdvice에 대해 찾아보시면 예외를 깔끔하게 처리하고 응답할 수 있을 것 같습니다.