인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

003213님의 프로필 이미지
003213

작성한 질문수

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

영속성 컨텍스트 1

spring data jpa에서 영속성 관리

작성

·

588

0

JPA는 강의에 나와있는대로 em.persist(), em.flush(), em.clear()

등으로 영속상태와, DB에 query날리는 시점, 준영속상태로 만드는 시점 등을 조절할 수가 있는데요

spring data jpa에서는 어떻게 영속, 준영속, 플러쉬 관리를 하는지 궁금합니다.

예를들어 xxxRepository.save(A);

를 하였을 때 어느 시점에 DB에 query가 나가는지, A라는 entity가 언제까지 영속상태로 유지되는지(block단위? 메소드 단위? 등) 이런것들이 궁금합니다.

감사합니다

답변 1

0

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. 003213님

기본편 강의에서 조금 더 들어보시면 이해가 되시겠지만, 실제 웹 애플리케이션을 개발할 때는

트랜잭션 단위에 맞춥니다. 그러니까 트랜잭션이 종료되면 자동으로 플러시가 동작하는데 여기에 맞추어서 플러시를 사용합니다.

그리고 트랜잭션이 종료되면 영속성 컨텍스트도 종료합니다.

감사합니다.

003213님의 프로필 이미지
003213
질문자

이번 강의에 나오는 JPA에서는 tx.begin(), tx.commit() 등으로 트랜잭션의 시작과 끝이 딱 정의가 되는데 spring data jpa에서는 따로 저런 트랜잭션 단위가 눈에 보이게 정의되지 않는것 같아서요.. 

스프링 데이터 jpa강의를 들으면 답이나올까요?

김영한님의 프로필 이미지
김영한
지식공유자

네 이부분은 JPA 기본편을 들은 다음에 활용1편을 들으시면 어느정도 정리가 되실거에요.

감사합니다.

003213님의 프로필 이미지
003213

작성한 질문수

질문하기