N+1문제 JPA를 사용하면 자주 직면하게 되는 문제이다. 예를 들어, 아래와 같은 연관 관계를 가진 Entity가 있다고 가정해보자 구체적인 코드는 아래와 같고 ORM은 spring-data-jpa를 사용한다. Academy.java package com.example.domain...
[JPA] MultipleBagFetchException
MultipleBagFetchException JPA의 N+1문제에 대한 해결책으로 Fetch Join을 사용하다보면 자주 만나는 문제가 있다. 바로 MultipleBagFetchException이다. 이 문제는 2개 이상의 OneToMany 자식 테이블에 Fetch Join을 선언햇을때 발생한다. OneToOne, Man...
[JPA] JPA 양방향 Entity 무한재귀 문제
JPA 양방향 Entity 무한재귀 문제 @JsonIgnoreProperties 어노테이션으로 무시할 속성 지정 출처 https://thxwelchs.github.io/JPA%20%EC%96%91%EB%B0%A9%ED%96%A5%20Entity%20%EB%AC%B4%ED%95%9C%20%EC%9E%AC%EA%B7%80%20%EB%AC%B...
[JPA] JPA vs Hibernate
JPA vs Hibernate JPA(Java Persistence API): 구현물이 없는 인터페이스 Hibernate: JPA의 구현체 JPA만 가지고는 프로그래밍할 순 없고 Hibernate, EclipseLink, DataNucleus와 같은 구현체를 가지고 사용해야한다. SessionFactory(Hiber...
[JPA] Hibernate
ORM Framework (Object Relational Mapping) Object Persistence 를 위한 프레임워크 객체와 테이블 사이에는 mismatch가 발생한다. 이를 위해 mapping시켜주는 프레임워크 DB에 데이터 persist를 위한 3가지 방법 1) JDBC 2) Spring JDBC 3) Hibernate (...
[JPA] Hibernate With Spring
spring과 hibernate 연동을 위한 4가지 단계 1. spring과 hibernate 연동을 위한 메이븐 디펜던시 설정(pom.xml) <!– Spring에서 ORM을 지원하기 위해 디펜던시 --> <dependency> <groupId>org.springframework</groupId> ...
[JPA] JPA Entity Relationships
Entity Relationships 총 4가지 타입이 존재 1) @OneToOne 2) @OneToMany, @ManyToOne 3) @ManyToMany 총 2가지 방향성이 존재 1) bidirectional(양방향) 2) unidirectional(단방...
[GCP] Youtube API 사용법
Youtube API 사용법 1) Google API 콘솔에 액세스 https://console.developers.google.com/apis/dashboard 2) 새 프로젝트 등록 3) 사용할 API 검색 및 서비스 사용 설정 4) 사용자 인증정보(KEY)를 발급 5) 발급된 인증키로 API 테스트 https://...
[Database] Inner Join
Inner Join INNER JOIN은 조인될 조건이 부합하는 행에 대해서만 Join이 발생하는 것(교집합의 영역) 대개의 업무에서 조인은 Inner Join을 주로 사용하며, 일반적으로 Join이라 하면, Inner Join을 지칭하는 것이다. Inner Join 구조 SELECT <열 목록> FROM <첫 번째 테이블...
[Database] Join
Join 여러 테이블에 흩어져 있는 정보 중 사용자가 필요한 정보만 가져와 가상의 테이블을 만들어 보여주는 것으로 2개의 테이블을 조합하여 하나의 열로 표현하는 것이다. Join의 종류 1) INNER JOIN 2) CROSS JOIN 3) OUTER JOIN 4) SELF JOIN 1. INNER JOIN INNER...