작성
·
300
0
안녕하세요! 이번 강의를 들은 후 생긴 궁금증에 대해 질문 드립니다.
1차 캐시 질문입니다.
-> member1은 1차캐시와 db에 있고, member2는 1차 캐시에 없고 db에는 있는 상황을 봤을 때, 1차캐시가 저장(?)되려면 sava후 바로 find를 해야하나요? 즉, 하나의 트랜잭션 안에서 실행되어야 하는건가요?
-> 1차 캐시가 성능면에서 엄청난 장점이 있지는 않다고 하셨는데, 그럼에도 아주 약간의 성능 개선(?)이 있기 때문에 영속성 컨텍스트의 장점이 되는건가요?
영속성 Entity의 동일성 보장 파트에서 질문입니다!
-> 1차 캐시로 반복 가능한 읽기를 DB가 아닌 애플리케이션 차원에서 제공한다고 하셨는데, '애플리케이션 차원'이 정확한 어딘지? 무엇인지 궁금합니다! DB가 아닌 spring에서? 또는 jpa에서 트랜잭션 격리 수준을 제공해준다는 말씀이신가요?
flush관련 질문입니다.
-> 다음 강의에 설명이 자세히 있을 것 같긴 하지만... 강의를 듣기전 flush에 대한 제 생각과 들은 후의 이해도를 비교해 보고 싶어서 질문 남깁니다. transaction.commit()을 하면 쓰기 지연 저장소에 있는 쿼리들이 먼저 DB로 이동(flush)을 하고, 그 후에 실질적인 commit이 이루어진다고 이해하면 되나요? 개념적으로 flush와 commit의 차이를 잘 모르겠습니다!
감사합니다!!
답변 1
0
안녕하세요. kimmj1106님
하나의 트랜잭션 안에서 실행되어야 합니다.
JPA에서 지원해준다는 뜻입니다. 1차 캐시가 바로 그 역할을 합니다.
생각하신 내용이 맞습니다. 따라서 flush() 이후에 commit을 해야 합니다. 자세한 내용은 다음 강의를 참고해주세요^^
감사합니다.