문제
Data Data` Data
Service 1 => => Data 수정
Service 2 => Data 조회 ( 캐시에 남음 ) => Data 조회하려 했지만 수정된 데이터가 아니라 캐시에 남은 Data를 조회함
수정된 Data가 검색되는게 아니라 JPA 1차캐시에 남아 있는 기존 Data를 Service 2에서 검색하는 문제였다.
스프링 마이크로서비스를 개발하면서 이런 일이 많을 것 같은데 어떠한 해결방법이 있을까?
해결방법
1. flush()
Service2에서 Data를 조회하기 전에 flush()를 호출하여 Database와 1차 캐시를 동기화해주는 방법
하지만 성능상 이슈?
'Back-End > JPA' 카테고리의 다른 글
ObjectOptimisticLockingFailureException (0) | 2019.11.02 |
---|---|
N+1 문제 해결하기 ( fetch join, @EntityGraph ) (0) | 2019.08.14 |
13장. 웹애플리케이션과 영속성 관리 (0) | 2019.04.17 |
Persistence Framework에 관하여 ( 장,단점 ) (0) | 2019.02.25 |
JPA 3장. 영속성 관리 ( persistence ) (1) | 2018.07.25 |