@Transactional
사용했는데..
부모메서드에서
PromCpnType origin = promCpnTypeMapper.readPromCpnType(param);PromCpnType param = new PromCpnType();
param.setCpnTypeId(promCpnType.getCpnTypeId());
param.setIssDstrSeq(promCpnType.getIssDstrSeq());
PromCpnType origin = promCpnTypeMapper.readPromCpnType(param);
자식 메서드에서
PromCpnType param = new PromCpnType();
param.setCpnTypeId(promCpnType.getCpnTypeId());
param.setIssDstrSeq(promCpnType.getIssDstrSeq());
PromCpnType origin = promCpnTypeMapper.readPromCpnType(param);
둘다 똑같이 DB에서 가져오는건데..
부모에서 origin데이터를 막 수정하나서 아직 update하기전에 자식에서 DB접근해서 데이터를 가져오는건데..
어째서 DB에 있는 값을 가져오지 않는것인가?
정말 안가져오는건가 아니면 트랜젝션이 걸려있는 메소드는 쿼리실행순서가 다른가?
-> 트랜젝션 걸린거 취소하니까 정상적으로 되는데..
@Transactinal 을 걸면 모든 객체를 캐싱처리한다.
그래서 직접 DB를 조회하는 쿼리를 호출해도 제일 처음 리턴받은 객체 자체를 캐싱처리하기 때문에,
동일한 DB조회 쿼리시에 캐싱처리된 데이터를 리턴한다.
( 객체의 ID값이 변경되지 않는다. )
'기술 > 오류 해결 기록' 카테고리의 다른 글
[Spring boot] warning: unknown enum constant When.MAYBE (0) | 2023.10.13 |
---|---|
[Spring boot] Generating equals/hashCode implementation but without a call to superclass (0) | 2023.09.26 |
[Android Build failed] Keystore file ... not found for signing config 'debug'. (MAC) (0) | 2023.09.07 |
[cocoapods] gem install error (0) | 2021.10.31 |
[JAVA] jar 파일 CMD로 실행시 한글 깨짐 현상 (0) | 2021.04.02 |