작성자 없음
작성자 정보가 삭제된 글입니다.
작성
·
393
0
안녕하세요. 먼저 좋은 강의 감사 드립니다
@Transactional 내부 호출 시 호출 안되는 점 관련해서 강의를 듣다가 헷갈리는 점이 있어 문의 드립니다.
아래와 같이 컨트롤러에서 유저를 저장하는 부분을 만들어서 호출을 했을 때
userService.addUser() 메소드를 호출하는데 이 때 ,
removeUser() 메소드의 삭제 로직 이후, 삭제가 끝나면 addUser()의 저장 로직을 타게 된다고 가정했을 때
아래와 같이 두 군데의 서비스 메소드 위에 @Transactional 선언을 해주면 내부 호출을 해도 문제가 없을까요?
아니면 처음 시작점인 addUser에만 @Transactional 을 선언해줘도 되는걸까요?
아니면 제가 잘못 이해한 부분이고, 강의에서 말씀하신대로 무조건 다른 클래스를 생성해서 호출하는 방법으로 사용하면 될까요?
@RequestMapping("/api/user")
public class UserController{
@Autowired private UserService userService;
@RequestMapping(method = { RequestMethod.POST }, value = "/save")
public String userSave(){
userService.addUser(param);
}
}
@Service
public class userService{
@Autowired private UserDao userdao;
@Transactional
public String addUser(){
removeUser(); //내부메소드 호출
userdao.insert(); //USER 테이블 저장로직
}
@Transactional
public void removeUser{
userdao.remove(); //USER테이블 삭제로직
}
}
답변 1
네 맞습니다
한 번 해보시고, 안되거나 트랜잭션 관련 에러가 발생하면 에러 메시지 첨부해주세요 추가 답변 드리겠습니다.