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

정성훈님의 프로필 이미지
정성훈

작성한 질문수

재고시스템으로 알아보는 동시성이슈 해결방법

saveansflush를 호출하시는 이유가 있나요?

작성

·

357

1

궁금합니다

답변 1

0

최상용님의 프로필 이미지
최상용
지식공유자

정성훈님 안녕하세요.

일단 saveAndFlush 를 사용한이유는 예제를 간단하게 작성하기 위해서 사용하였습니다.

save 메소드를 사용하게 된다면 데이터베이스에 바로 flush 가 되는것이 아니기때문에 synchronized 를 이용한 방법을 테스트할 때 오류가 날것입니다.

그 이유는 @Transactional 의 동작방식때문에 그렇습니다. (DB 에 값이 입력되기전에 다른스레드가 메소드에 접근이 가능해집니다)

SynchronizedFacade 를 만들어서 한번 더 래핑해준다면 save 메소드를 사용하는편이 더 좋을것 같습니다.

강의를 들어주셔서 감사합니다.

정성훈님의 프로필 이미지
정성훈

작성한 질문수

질문하기