inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

스프링 DB 2편 - 데이터 접근 활용 기술

@Transactional 내부 호출 시 호출 안되는 점 관련해서 질문사항이 있습니다

423

작성자 없음

작성한 질문수 0

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테이블 삭제로직

}

}

spring

답변 1

1

OMG

안녕하세요. incu님, 공식 서포터즈 OMG입니다.

후자가 맞습니다. 아래 링크를 참고해주세요 :)

https://velog.io/@titu/Spring-JPA-%EB%B6%80%EB%AA%A8-%ED%8A%B8%EB%9E%9C%EC%9E%AD%EC%85%98-%EB%82%B4%EC%97%90-%EC%9E%90%EC%8B%9D-%ED%8A%B8%EB%9E%9C%EC%9E%AD%EC%85%98%EC%9D%B4-%EC%8B%A4%ED%96%89%EB%90%A0-%EB%95%8C-Transactional

감사합니다.

0

OMG

네 맞습니다

한 번 해보시고, 안되거나 트랜잭션 관련 에러가 발생하면 에러 메시지 첨부해주세요 추가 답변 드리겠습니다.

RepositoryTest의 패키지 위치가 domain인 이유

0

29

2

REQUIRES_NEW 해결 방법에 대해서 질문있습니다!!

0

29

1

update()에 사용하는 setter 질문드립니다.

0

47

1

SQL 중심적 개발의 문제점에 대한 질문

0

72

1

혹시 Containing 을 안쓰신 이유가 있을까요?

0

83

2

[공유] 스프링부트 4.x 버전 mybatis 연동

0

173

1

@repository 어노테이션

0

89

3

ItemService

0

58

1

논리 커밋, 물리 커밋 질문드립니다.

0

54

1

내부 트랜잭션 커밋은 필수인가요?

0

57

1

프록시 커넥션 객체를 반환할 때 생성하는건가요?

0

54

1

Transaction readOnly 성능 개선 (김영한님의 대한 감사인사)

2

178

2

JPQL 대신 네이티브 쿼리를 사용해야 하는 경우

0

77

1

@EventListener(ApplicationReadyEvent.class) 관련

0

88

1

트랜잭션 동기화 매니저와 데이터 소스

0

76

1

DB 관련 강의 개설 계획은 없으신건가요?

0

133

2

물리 트랜잭션 과 논리트랜잭션 용어를 맞게 이해한걸까요

0

94

1

스프링 3 버전 이상 rollbackFor 변경된듯요

1

112

1

트랜잭션 전파 질문.

0

87

1

프로젝트 오픈 에러

0

126

1

외부 트랜잭션에서 isNewTransaction이 false로 나오는거에 대해 질문드립니다

0

83

2

같은 스레드를 사용하면 트랜잭션 동기화 매니저는 같은 커넥션을 반환

0

72

1

h2 인메모리 테스트중 예약어 충돌날 경우 대처방법

0

102

1

커스텀aop와 트랜잭션을 같이 사용할때 우선순위에 관한 질문

0

98

2