일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- Baekjoon
- 코딩테스트
- 읽기쉬운코드
- spring boot
- 개발자
- Java
- 코드
- 알고리즘
- 그리디알고리즘
- 개발
- 스프링
- 애자일기법
- framework
- 그리디
- 프레임워크
- 애자일프로그래밍
- Elasticsearch
- 백준
- 데이터베이스
- 클린코드
- ES
- 엘라스틱서치
- database
- 자바
- JPA
- cleancode
- API
- 코딩
- Spring
- mongoDB
- Today
- Total
목록영속 (2)
튼튼발자 개발 성장기🏋️

트랜잭션 범위의 영속성 컨텍스트웹 애플리케이션에서 트랜잭션 범위의 영속성 컨텍스트는 데이터베이스와의 상호작용을 효율적으로 관리하는 데 필수적이다. 트랜잭션 범위의 영속성 컨텍스트는 일반적으로 요청 당 트랜잭션으로 설정되며, 이 경우 모든 엔티티 객체는 해당 트랜잭션 내에서 관리된다. 이는 데이터의 일관성을 유지하고, 중복된 데이터베이스 접근을 줄이는 데 도움을준다.스프링 컨테이너의 기본 전략 스프링 컨테이너는 데이터베이스 작업을 관리하기 위해 @Transactional 어노테이션을 사용하여 트랜잭션을 처리한다. 기본적으로 스프링은 각 요청마다 새로운 트랜잭션을 시작하고, 작업이 완료되면 자동으로 커밋하거나 예외가 던져지면 롤백한다. 이러한 접근 방식은 데이터 일관성을 보장하고, 예외 발생 시 롤백을 통해..
플러시 flush는 영속성 컨텍스트의 변경 내용을 데이터베이스에 반영하는 역할을 한다. 이 기능을 사용하면 다음과 같은 일이 일어난다. - Entity와 영속성 #2에서 알아봤던 것 처럼 변경 감지가 작동하여 스냅샷과 비교하여 수정된 엔티티를 찾는다. 수정된 엔티티가 있을 때 수정 쿼리를 만들어 SQL 저장소에 등록한다. - SQL 저장소의 쿼리를 데이터베이스에 전송한다. 영속성 컨텍스트를 플러시하는 방법은 3가지가 있다. 1. em.flush()를 직접 호출한다. - 테스트나 다른 프레임워크와 JPA를 함께 사용할 때 외에는 거의 사용하지 않는다. 2. 트랜잭션을 커밋하여 플러시를 자동 호출한다. - 변경 내용을 SQL로 전달하지 않고 커밋하면 데이터베이스에 반영이 되지 않는다. - 꼭 커밋 전에 영속..