작성한 질문수
자바 ORM 표준 JPA 프로그래밍 - 기본편
영속성 컨텍스트 1
작성
·
621
0
JPA는 강의에 나와있는대로 em.persist(), em.flush(), em.clear()
등으로 영속상태와, DB에 query날리는 시점, 준영속상태로 만드는 시점 등을 조절할 수가 있는데요
spring data jpa에서는 어떻게 영속, 준영속, 플러쉬 관리를 하는지 궁금합니다.
예를들어 xxxRepository.save(A);
를 하였을 때 어느 시점에 DB에 query가 나가는지, A라는 entity가 언제까지 영속상태로 유지되는지(block단위? 메소드 단위? 등) 이런것들이 궁금합니다.
감사합니다
퀴즈
JPA에서 영속성 컨텍스트는 어떤 역할을 하는 핵심 개념일까요?
객체와 테이블의 매핑 정보 정의
엔티티를 관리하고 DB와 동기화하는 환경 제공
SQL 쿼리 직접 작성 및 실행
데이터베이스 연결 풀 관리
답변 1
안녕하세요. 003213님
기본편 강의에서 조금 더 들어보시면 이해가 되시겠지만, 실제 웹 애플리케이션을 개발할 때는
트랜잭션 단위에 맞춥니다. 그러니까 트랜잭션이 종료되면 자동으로 플러시가 동작하는데 여기에 맞추어서 플러시를 사용합니다.
그리고 트랜잭션이 종료되면 영속성 컨텍스트도 종료합니다.
감사합니다.
이번 강의에 나오는 JPA에서는 tx.begin(), tx.commit() 등으로 트랜잭션의 시작과 끝이 딱 정의가 되는데 spring data jpa에서는 따로 저런 트랜잭션 단위가 눈에 보이게 정의되지 않는것 같아서요..
스프링 데이터 jpa강의를 들으면 답이나올까요?
네 이부분은 JPA 기본편을 들은 다음에 활용1편을 들으시면 어느정도 정리가 되실거에요.
이번 강의에 나오는 JPA에서는 tx.begin(), tx.commit() 등으로 트랜잭션의 시작과 끝이 딱 정의가 되는데 spring data jpa에서는 따로 저런 트랜잭션 단위가 눈에 보이게 정의되지 않는것 같아서요..
스프링 데이터 jpa강의를 들으면 답이나올까요?