inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

자바 ORM 표준 JPA 프로그래밍 - 기본편

영속성 컨텍스트 1

강의 듣고 궁금한 점 질문 드립니다.

360

kimmj1106

작성한 질문수 1

0

안녕하세요! 이번 강의를 들은 후 생긴 궁금증에 대해 질문 드립니다.

  1. 1차 캐시 질문입니다.

    -> member1은 1차캐시와 db에 있고, member2는 1차 캐시에 없고 db에는 있는 상황을 봤을 때, 1차캐시가 저장(?)되려면 sava후 바로 find를 해야하나요? 즉, 하나의 트랜잭션 안에서 실행되어야 하는건가요?

    -> 1차 캐시가 성능면에서 엄청난 장점이 있지는 않다고 하셨는데, 그럼에도 아주 약간의 성능 개선(?)이 있기 때문에 영속성 컨텍스트의 장점이 되는건가요?

  2. 영속성 Entity의 동일성 보장 파트에서 질문입니다!

    -> 1차 캐시로 반복 가능한 읽기를 DB가 아닌 애플리케이션 차원에서 제공한다고 하셨는데, '애플리케이션 차원'이 정확한 어딘지? 무엇인지 궁금합니다! DB가 아닌 spring에서? 또는 jpa에서 트랜잭션 격리 수준을 제공해준다는 말씀이신가요?

     

  3. flush관련 질문입니다.

    -> 다음 강의에 설명이 자세히 있을 것 같긴 하지만... 강의를 듣기전 flush에 대한 제 생각과 들은 후의 이해도를 비교해 보고 싶어서 질문 남깁니다. transaction.commit()을 하면 쓰기 지연 저장소에 있는 쿼리들이 먼저 DB로 이동(flush)을 하고, 그 후에 실질적인 commit이 이루어진다고 이해하면 되나요? 개념적으로 flush와 commit의 차이를 잘 모르겠습니다!

감사합니다!!

jpa java JPA

답변 1

0

김영한

안녕하세요. kimmj1106님

  1. 하나의 트랜잭션 안에서 실행되어야 합니다.

  2. JPA에서 지원해준다는 뜻입니다. 1차 캐시가 바로 그 역할을 합니다.

  3. 생각하신 내용이 맞습니다. 따라서 flush() 이후에 commit을 해야 합니다. 자세한 내용은 다음 강의를 참고해주세요^^

감사합니다.

벌크연산에서 member.getAge 호출 시 영속성 컨텍스트에서 데이터를 가져오는건가요?

0

29

2

inheritance startegy 선택시 고려사항

0

22

1

Entity 동등성 비교

0

21

1

실무 조언 관련 질문입니다.

0

47

1

H2데이터베이스 파일 생성

0

56

2

서브쿼리 강의에서 ALL 예시 관련 질문드립니다.

0

53

2

수정또는 삭제시 영속성 엔티티에 값이 무조건 있어야 하나요?

0

55

1

JPQL 메소드와 락

0

55

1

Delivery @OneToOne

0

60

1

17강 4~5분대 테이블 값 조회가 안됩니다.

0

94

2

UnsupportedOperationException 발생

0

86

3

H2 Database 연결이 안됩니다.

0

95

2

연관관계 매핑 질문드립니다.

0

85

2

h2데이터베이스 실행오류

0

108

2

persistence.xml

0

108

2

양방향 연관관계에서 연관관계의 주인(mappedBy)을 왜 꼭 정해야 하나요?

0

80

1

영속성 컨텍스트

0

66

1

JPA 프록시

0

97

1

Native Query와 MyBatis

0

70

1

영속성 컨텍스트는 어떤 메모리에 저장되는건가요?

0

87

1

임베디드 타입 예시 코드 관련 질문

0

115

3

명시적 조인에서 별칭을 주면 왜 객체에 접근할 수 있나요

0

95

3

인텔리제이 패키지 커서 단축키 질문

0

108

2

혹시 현재는 ID 데이터 타입이 String이면 안되나요?

0

145

1