개발 환경 IDE : IntelliJ Framework : Spring Boot 3.0.5 JDK -version : openjdk 17 Gradle : Groovy 검색하면 많이 나오는 설정들이 대부분 plugin에 querydsl 설정을 추가하는데 Spring Boot 3 버전 이상부터는 plugin에 querydsl 을 사용하면 제대로 작동되지 않습니다. 반드시 plugins에서 제거해주고 dependencies 에만 라이브러리 추가해주세요. build.gradle plugins { id 'java' id 'org.springframework.boot' version '3.0.5' id 'io.spring.dependency-management' version '1.1.0' //plugins 에서 ..
@BatchSize 연관된 엔티티를 조회할 때 지정한 size 만큼 where 조건의 in 절으로 조회한다. 1:N 관계의 Entity 정의 정의 조건 : 1명의 멤버는 여러 개의 주문을 가질 수 있다. Members (1) : Orders (N) * 부모 class : Members @Entity class Members( @Column(nullable = false, length = 50) var email: String, @Column(nullable = false, length = 20) var name: String, ) { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) var id: Long? = null @OneToMany(mappedBy..
1 : N 관계에서 Fecth Join 사용시 발생하는 MultipleBagFetchException 해결법 1. ToOne(OneToOne, ManyToOne) 관계를 모두 Fetch Join 한다. 2. 1:N 관계의 Collection Entity는 Lazy Loading(지연 로딩)으로 조회한다. 3. Lazy Loading(지연 로딩) 성능 최적화를 위해 hibernate.default_batch_fetch_size를 적용한다. * QueryDsl 에서도 1:N 관계에서 단 한번의 fetch join 사용해야 하는 건 똑같다. ToOne(OneToOne, ManyToOne) 관계를 모두 Fetch Join 한다. 연관관계에서 자식 테이블인 ToOne 관계에서는 row 수를 증가시키지 않는다. 따..
N+1 문제 : 조회된 부모의 수만큼 자식 테이블의 쿼리가 추가 발생하는 현상 연관 관계가 설정된 엔티티를 조회할 경우에 발생하는 문제 쿼리를 날렸을 때 의도하지 않은 쿼리가 N번 추가로 실행되는 것을 N+1이라고 한다. 해결방법 : FetchJoin * Join, Fetch Join 차이점 Join - 연관 Entity에 Join을 걸어도, 실제 쿼리에서 SELECT 하는 Entity는 오직 JPQL에서 조회하는 주체가 되는 Entity만 조회하여 영속화 - 조회의 주체가 되는 Entity만 SELECT 해서 영속화하기 때문에 데이터는 필요하지 않지만, 연관 Entity가 검색조건에는 필요한 경우에 주로 사용됨 Fetch Join - 데이터를 가져올 때 조회의 주체가 되는 Entity 이외에, Fetc..
- Total
- Today
- Yesterday
- array
- redisson 분산락
- 티스토리챌린지
- bucket4j
- Linux
- 스프링오류
- MongoDB
- 배열
- n+1
- 스프링 스케줄링
- JPA
- dto 클래스 생성자
- junit5
- Git
- Spring Security
- MultipleBagFetchException
- Java
- 추상클래스
- ChatGPT
- jvm warm-up 전략
- addFilterBefore
- 오블완
- 자바 어플리케이션 실행 과정
- port
- QueryDSL
- spring boot 3
- FetchJoin
- checkout
- Kotlin
- Cannot construct instance of
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |