- Docker
- sql
- springboot
- select
- spring boot
- hibernate
- 스프링부트
- Django
- 문자열
- SSL
- jpa
- string
- 1차원 배열
- @transactional
- 스프링
- spring security 6
- DI
- ORM
- mysql
- 자바
- 프로그래머스
- spring mvc
- spring
- join
- AWS
- nginx
- static
- PYTHON
- 데이터베이스
- java
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
목록hibernate (3)
개발하는 자몽
상황1:N 관계가 얽혀있는 엔티티를 대상으로 Spring Data JPA를 이용해서 Pagination 조회를 하니 말로만 듣던 N+1 상황이 발생했다. 처음에는 일반적인 해결 방법인 Fetch Join을 사용하려고 했다. 더불어 중복을 방지하기 위해 `DISTINCT` 추가하려고 했다. 그러나 1:N 관계의 컬렉션을 Fetch Join 하면서 동시에 Pagination을 사용하는 것은 OutOfMemoryError가 발생할 수 있고, 이로 인해 `DISTINCT`를 적용할 수 없다고 한다. 그래서 찾은 다른 방법 중 가장 빠르고 쉬운 방법은 Batch Size를 설정하는 것이었다. 하이버네이트 Batch Size 하이버네이트에서 제공하는 `@BatchSize` 애노테이션이나 `batch_size`..
백기선님 유튜브 영상 백기선 님의 해당 유튜브 영상을 보고 작성한 글입니다. 뭐가 문제일까? Goal Book 엔티티와 BookStore 엔티티를 양방향 관계를 맺도록 하기 실행 Book 엔티티와 BookStore 엔티티가 아래 코드와 같을 때 아래 테스트 코드를 실행해 보자. Book Entity import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.Id; import jakarta.persistence.ManyToOne; import lombok.Getter; import lombok.Setter; @Entity @Getter @Setter public class Bo..
H2 인메모리 DB를 사용하면 알아서 스키마를 초기화하지만, 별도의 DB를 사용하면 초기화하지 않는다. 따라서 application.properties에 관련 설정을 작성해야 한다. Hibernate 전략 spring.jpa.generate-ddl 애플리케이션 시작 시 스키마 초기화 여부를 지정하며 기본값은 false다. spring.jpa.hibernate.ddl-auto DB 초기화 전략 옵션이다. none : DDL 핸들링 작업을 수행하지 않는다. create : 기존에 존재하는 스키마를 삭제(drop)하고 새로 생성한다. create-drop : 스키마를 생성하고 애플리케이션이 종료될 때 삭제(drop)한다. update : 기존의 스키마를 유지하며 JPA에 의해 변경된 부분만 추가한다. vali..