• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

회원가입 할때

21.11.24 20:18 작성 조회수 163

0

회원가입 할때 memberService.join(member)를 이용해서 db에 회원 정보를 보내잖아요? 근데 코드를 뜯어보면 join안에는 중복회원 검증인 validateDuplicateMember와 실질적으로 영속성 컨텍스트에 올리는 memberRepository.save(member)가 실행되는데 save함수 안에는 em.persist만 있을뿐 em.flush가 없는데 어떻게 insert가 될 수 있는건가요?

답변 2

·

답변을 작성해보세요.

0

OMG님의 프로필

OMG

2021.11.24

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

네 맞습니다.

@Transactional 혹은 @Transactional(readOnly = false)를 선언할 경우 해당 클래스나 메서드에 트랜잭션을 적용하며 메서드 종료 할 때 트랜젹선을 커밋합니다. 트랜잭션 커밋으로 인해 flush가 자동으로 실행된 것입니다.

@Transactional(readOnly=true)로 설정 혹은 @Transactional을 제거하고 확인해보셔도 이해하는데에 도움 되리라 생각합니다.

감사합니다.

0

김태민님의 프로필

김태민

질문자

2021.11.24

@Transactional 때문인가요?