일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- OSIV
- 참조 타입
- 불변 객체
- 일괄처리
- 필드 주입
- Handler Adepter
- 싱글 스레드
- View Resolver
- 익명 함수
- mavenCentral
- open session in view
- 이펙티브 자바
- 빈
- @Bean
- Request flow
- 가변 객체
- Spring Batch
- 스프링 빈
- open-in-view
- @componentScan
- spring boot
- Open EntityManager In View
- Batch
- @Configuration
- 메서드 주입
- 생성자 주입
- @FunctionalInterface
- 컴포넌트스캔
- Dispatcher Servlet
- Spring Framework
- Today
- Total
목록spring/jpa (2)
보다 더 나은 내일의 나를 위해
JPA에서는 객체를 DB에서 찾아올 때의 방식을 위한 즉시 로딩과 지연 로딩 옵션 중 하나를 설정해 줄 수 있습니다. @ManyToOne의 기본값은 즉시 로딩이고, @ManyToMany의 기본값은 지연 로딩으로 되어있습니다. 이 두 옵션은 무슨 차이가 있을까요? 즉시 로딩 : 즉시 로딩은 DB에서 엔티티를 찾아올 때 연관관계를 맺고 있는 엔티티들을 한 번에 바로 조회합니다. 지연 로딩 : 지연 로딩은 DB에서 엔티티를 찾아올 때 연관관계를 맺고 있는 엔티티들은 프록시 객체를 할당해 주어 나중에 실제로 사용할 때 따로 조회를 시도합니다. 코드를 통해 한번 알아봅시다. 우선 사용할 엔티티 구조입니다. Human과 Organism은 서로 1 : N 관계입니다. 이때 fetch의 기본 값은 즉시 로딩(EAGER..
OSIV Open In View는 Open Session In View라 불리며 관례상 OSIV라 부릅니다. OSIV는 영속성 컨텍스트를 트랜잭션이 종료되어도 VIew 렌더링 또는 응답 시까지 살아있도록 합니다. Spring Boot에서는 spring.jpa.open-in-view의 기본값이 true로 되어있습니다. 이 값이 true 일 때와 false 일 때 무엇이 다를까요? True라면? spring.jpa.open-in-view의 값이 기본값인 true라면 트랜잭션이 종료되어도 영속성 컨텍스트가 살아있다. 예를 들어 Book와 Bookcase라는 엔티티가 있습니다. // 책 @Entity public class Book { ... @ManyToOne(fetch = FetchType.LAZY) @Jo..