인프런 커뮤니티 질문&답변

염재선님의 프로필 이미지

작성한 질문수

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

회원 서비스 개발

회원서비스 테스트 트랜잭션과 entitymanager

21.07.08 15:20 작성

·

232

2

강의를 듣고 질문들을 보면서 저나름 정리한 내용인데 확실히 맞는지가 궁금합니다. !

1. Test에서 데이터변경이 일어나기에 @Transactional 에너테이션으로 트랜잭션시작을 지정한 상황에서 MemberService의 join메서드가 실행되면 join메서드도 @Transactional 에너테이션이 있어도, 동일한 트랜잭션으로 인식한다. (트랜잭션 내부의 트랜잭션이여도 동일한 트랜잭션)

2. 그렇다면 MemberServiceTest 트랜잭션과 MemberService의 트랜잭션이 동일한 트랜잭션이기에 스프링은 동일한 EntitiyManager를 제공하므로, 동일한 영속성 컨텍스트에 접근하기때문에, 엔티티 동일성을 보장한다.

(요부분은 궁금한 내용입니다!)

3. spring boot를이용하면 @PersistenceContext로 EntitiyManagerFactory로부터 EntitiyManager를 받아오는것을 지원하는데, spring data jpa를 이용하면 스프링 컨테이너에서 스프링 빈 DI하는것과 같이 생성자주입(여타 다른 주입도 상관없음,, 필드주입,, setter주입)을 통해서 EntitiyManager를 받아올수있다고 하셨는데, 그럼 EntitiyManager가 스프링빈과같이 스프링 컨테이너에 존재한다는 의미인가요???

항상 잘듣고있습니다. 읽어주셔서 감사합니다.

답변 2

2

김영한님의 프로필 이미지
김영한
지식공유자

2021. 07. 08. 23:24

안녕하세요. 염재선님

생각하신 내용이 맞습니다.

3번은 다음 질문을 참고해주세요.

https://www.inflearn.com/questions/158967

감사합니다.

1

염재선님의 프로필 이미지
염재선
질문자

2021. 07. 09. 14:38

감사합니다 덕분에 동시성문제에 대해서 고민할수있는 좋은시간이었습니다.