Home
Youngho's Devlog
Cancel

[JPA] Spring Data JPA 개요

Spring Data JPA JPA를 사용해서 관계형 DB와 쉽게 연동하기 위한 Spring에서 제공하는 Spring ORM Module중 하나 Spring에서 CRUD 구현체를 제공 이를 통해 boiler-pate DAO코드를 최소화 entity type과 primary key의 정보만 넣어주면 자동으로 dao...

[JPA] QueryDSL

※ 실습 프로젝트는 Github에서 확인 할 수 있습니다. QueryDSL이란? Querydsl 정적 타입을 이용해서 SQL과 같은 쿼리를 생성할 수 있도록 해 주는 프레임워크다. 문자열로 작성하거나 XML 파일에 쿼리를 작성하는 대신, Querydsl이 제공하는 플루언트(Fluent) API를 이용해서 쿼리를 생성할 수 있다. QueryDSL를 ...

[JPA] JPA N+1 문제

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://...