- hibernate
- AWS
- 스프링부트
- spring mvc
- sql
- 데이터베이스
- 1차원 배열
- java
- jpa
- spring boot
- DI
- 스프링
- mysql
- @transactional
- string
- 자바
- select
- Django
- static
- 문자열
- SSL
- spring security 6
- nginx
- springboot
- spring
- ORM
- PYTHON
- Docker
- join
- 프로그래머스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 (4)
개발하는 자몽
평소에 SQLite는 테스트용으로만 사용하고 실제로는 잘 사용하지 않는데, 설치가 불필요한 로컬 RDB가 요구되는 프로젝트를 진행하게 되어 SQLite를 사용하기로 했다. 타입 종류SQLite는 대표적인 RDBMS인 MySQL이나 PostgreSQL 등과 달리 데이터 타입이 매우 적다. 다음은 SQLite에서 제공하는 storage class이다. TEXT : 데이터베이스 인코딩(UTF-8, UTF-16BE or UTF-16LE)을 사용하여 저장된 텍스트 문자열INTEGER : 값 크기에 따라 0, 1, 2, 3, 4, 6, 8 바이트로 저장되는 정수(signed integer)REAL : 8 바이트 IEEE 부동 소수점 숫자로 저장되는 부동 소수점 값BLOB : 입력 그대로 저장되는 데이터 NULL :..
상황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..