본문 바로가기
반응형

Web/JPA3

[JPA] 지연 로딩/즉시 로딩 1. 프록시 객체 가짜 객체 지연로딩 기능을 사용하기 위해 쓰임 실제 객체에 대한 참조를 가짐 2. 지연로딩 연관된 엔티티를 실제 사용할 때 조회 answer.getQuestion().getName() 처럼 질문 엔티티를 실제 사용하는 시점에 JPA가 SQL을 호출하여 질문 엔티티를 조회한다. 설정 : @ManyToOne(fetch = FetchType.LAZY) 예제 (Test Code) 1) Answer Entity @ManyToOne의 fetch타입을 지연로딩(FetchType.LAZY)로 지정한다. 2) Answer 엔티티 조회 test코드에서 answerRepository.findById(1L)를 수행하여, 해당 answer 엔티티를 조회한다. 2_1) 지연로딩 실행 SQL sql문을 보면, 단.. 2019. 6. 20.
[JPA] 트랜잭션 1. 트랜잭션 데이터를 접근, 변경하는 일련의 작업을 하나로 묶는 작업단위 작업의 완전성 보장 작업의 성공/실패가 분명 2. ACID (트랜잭션 성질) 원자성(Atomicity) 하나의 트랜잭션 내의 실행한 작업들은 하나로 간주 성공 아니면 실패 (모 아니면 도) 일관성(Consistency) 언제나 일관성 있는 데이터베이스 상태 유지 고립성,독립성(Isolation) 실행중인 각각의 트랜잭션은 서로가 간섭없이 독립적으로 진행 서로 영향 X 지속성(Durability) 트랜잭션이 성공적으로 수행되면 결과는 영원히 저장(반영) 3. Commit, Rollback 연산 Commit 하나의 트랜잭션이 성공적으로 종료 (DB 반영) 변경사항 저장 Rollback 하나의 트랜잭션이 비정상적으로 종료시 수행 변경사.. 2019. 5. 29.
[JPA] 영속성 컨텍스트 (Persistence context) 1. 영속성(Persistence) 데이터를 생성한 프로그램이 종료되도, 데이터는 사라지지 않는 특성 JPA에서 영속성이라 함은 Entity를 영구적으로 저장해주는 특성을 말함 2. 영속성 컨텍스트(Persistence context) Entity를 영구적으로 저장하는 환경(영역) 엔티티 매니저(Entity Manager)를 하나 생성할 때 영속성 컨텍스트 하나가 생성됨 엔티티 매니저로 엔티티를 CURD함 (영속성 컨텍스트를 관리함) 특징 1. 1차 캐시 - 영속성 컨텍스트에 존재하는 캐시 - 엔티티를 식별자 값(@id)로 구분 - Key-value형태인 맵으로 저장 (@id는 key값, value는 Entity 인스턴스) - 영속상태의 엔티티는 반드시 식별자값을 가짐 2. 동일성 보장 - 동일한 객체 .. 2019. 5. 28.
반응형