• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

벌크 연산 수행후 flush( ) 사용 질문

21.07.22 10:39 작성 조회수 140

0

안녕하세요 강의 잘 듣고 있습니다!^^

벌크 연산 수행후 영속성 컨텍스트와 DB의 값이 달라지기 때문에 em.flush( ), em.clear( ) 를 해주면 된다고 하셨는데

이미 DB에는 값이 저장 되었는데 flush( )를 해주는 이유가 있을까요?

clear( )만 해주면 안되나요?

답변 1

답변을 작성해보세요.

0

codesweaver님의 프로필

codesweaver

2021.07.23

안녕하세요. 진예도 님, 공식 서포터즈 codesweaver 입니다.
.

엔티티 매니저의 SQL저장소에 혹시라도 남아있을지 모를 쿼리를 실행하기 위해 flush()를 같이 실행합니다. 이는 안전한 코딩 습관 이라고 보시면 됩니다. 코드는 이후 다른 사람에 의해 유지보수 될 수 있으며 중간에 다른 프로세스가 추가 될 수도 있습니다. 지금은 flush() 가 필요하지 않은것이 확실하다 하더라도 추후에는 flush()를 실행해야할 상황이 발생할 수 있습니다. 그래서 flush() 와 clear()를 명확하게 함께 선언하여 안전을 보장합니다.

..
감사합니다.