마지막 부분 6:35 질문
이렇게 JPA와 JdbcTemplate을 함께 사용할 경우 JPA의 플러시 타이밍에 주의해야 한다. JPA는
데이터를 변경하면 변경 사항을 즉시 데이터베이스에 반영하지 않는다. 기본적으로 트랜잭션이 커밋되는
시점에 변경 사항을 데이터베이스에 반영한다. 그래서 하나의 트랜잭션 안에서 JPA를 통해 데이터를
변경한 다음에 JdbcTemplate을 호출하는 경우 JdbcTemplate에서는 JPA가 변경한 데이터를 읽기
못하는 문제가 발생한다.
이 문제를 해결하려면 JPA 호출이 끝난 시점에 JPA가 제공하는 플러시라는 기능을 사용해서 JPA의 변경
내역을 데이터베이스에 반영해주어야 한다. 그래야 그 다음에 호출되는 JdbcTemplate에서 JPA가
반영한 데이터를 사용할 수 있다.
================================
같은 하나의 트랜젝션인데
변경한 다음에 JdbcTemplate을 호출하는 경우 JdbcTemplate에서는 JPA가 변경한 데이터를 읽기
못하는 문제가 발생한다.
--
이 이유가 데이터를 커밋하지않고 1차 캐쉬에만 변경 한 값을 가지고 있으니까 jdbc 템플릿은 변경 한값을 알 수 없어서 생기는 문제라고 생각하면 되는건가요 ?
답변 1
설정 정보 없이 임베디드 데이터베이스 생성
0
27
1
RepositoryTest의 패키지 위치가 domain인 이유
0
49
2
REQUIRES_NEW 해결 방법에 대해서 질문있습니다!!
0
38
1
update()에 사용하는 setter 질문드립니다.
0
57
1
SQL 중심적 개발의 문제점에 대한 질문
0
85
1
혹시 Containing 을 안쓰신 이유가 있을까요?
0
92
2
[공유] 스프링부트 4.x 버전 mybatis 연동
0
193
1
@repository 어노테이션
0
102
3
ItemService
0
64
1
논리 커밋, 물리 커밋 질문드립니다.
0
55
1
내부 트랜잭션 커밋은 필수인가요?
0
59
1
프록시 커넥션 객체를 반환할 때 생성하는건가요?
0
58
1
Transaction readOnly 성능 개선 (김영한님의 대한 감사인사)
2
184
2
JPQL 대신 네이티브 쿼리를 사용해야 하는 경우
0
83
1
@EventListener(ApplicationReadyEvent.class) 관련
0
94
1
트랜잭션 동기화 매니저와 데이터 소스
0
78
1
DB 관련 강의 개설 계획은 없으신건가요?
0
135
2
물리 트랜잭션 과 논리트랜잭션 용어를 맞게 이해한걸까요
0
98
1
스프링 3 버전 이상 rollbackFor 변경된듯요
1
118
1
트랜잭션 전파 질문.
0
89
1
프로젝트 오픈 에러
0
131
1
외부 트랜잭션에서 isNewTransaction이 false로 나오는거에 대해 질문드립니다
0
85
2
같은 스레드를 사용하면 트랜잭션 동기화 매니저는 같은 커넥션을 반환
0
76
1
h2 인메모리 테스트중 예약어 충돌날 경우 대처방법
0
105
1





