작성한 질문수
실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
회원 등록
작성
·
210
0
회원가입 할때 memberService.join(member)를 이용해서 db에 회원 정보를 보내잖아요? 근데 코드를 뜯어보면 join안에는 중복회원 검증인 validateDuplicateMember와 실질적으로 영속성 컨텍스트에 올리는 memberRepository.save(member)가 실행되는데 save함수 안에는 em.persist만 있을뿐 em.flush가 없는데 어떻게 insert가 될 수 있는건가요?
답변 2
2021. 11. 24. 23:44
안녕하세요. 김태민님, 공식 서포터즈 OMG입니다.
네 맞습니다.
@Transactional 혹은 @Transactional(readOnly = false)를 선언할 경우 해당 클래스나 메서드에 트랜잭션을 적용하며 메서드 종료 할 때 트랜젹선을 커밋합니다. 트랜잭션 커밋으로 인해 flush가 자동으로 실행된 것입니다.
@Transactional(readOnly=true)로 설정 혹은 @Transactional을 제거하고 확인해보셔도 이해하는데에 도움 되리라 생각합니다.
감사합니다.
2021. 11. 24. 20:18
@Transactional 때문인가요?