# JPA

20개의 포스트

JPA Primary Key Mapping

JPA Primary Key Mapping 전략은 총 4가지가 있다. AUTO, IDENTITY, SEQUENCE, TABLE이다. 우선 DB에서 Primary Key를 선택할때는 크게 2가지가 존재한다. 자연키와 대체키이다. 자연키는 의미가 있는 값 또는 비지니스 로직에서 의미가 있는 값이다.EX) email, 주민번호 등등 자연키의 큰 단점은 언제든지 ...

2020년 2월 5일
·
0개의 댓글
post-thumbnail

IntelliJ에서 Java만으로 JPA 프로젝트 CRUD 시작하기 (Ver. Maven)

회사내에서 스터디 붐(?)이 발생하며 기술스택 변경에 대한 니즈가 강하게 일어났다. 특히 우리는 Java를 사용 또는 연동하는 거의 모든것들(?)에 대해서 SpringBoot와 JPA(Java Persistence API)기반한 기술 스택을 가져가기로 결정했다. 웹개발 쪽에서는 당연지사 SpringBoot와 병행하여 사용해야 겠으나, 우리 IPCC(IP ...

2020년 1월 31일
·
0개의 댓글

[Spring Boot + JPA로 웹 애플리케이션 구현] 2. ATDD로 게시글 CRUD 구현하기

들어가기전... > 이 시리즈는 제가 지금까지 배웠던 내용을 바탕으로 웹 애플리케이션을 구현하는 과정을 담았습니다. 스프링 부트를 사용해본 기간이 짧고, 웹 애플리케이션 구현을 스프링 부트로만 경험해보아서 설명이 틀릴 수 있고 부족한 점이 많습니다. 틀린 부분이 있거나

2020년 1월 17일
·
0개의 댓글

JPA 엔티티 매핑(Entity Mapping)

@Entity @Entity 어노테이션이 붙은 클래스는 JPA가 관리하는 클래스로, 해당 클래스를 엔티티라고 부른다. JPA를 사용하여 테이블과 매핑해야할 클래스는 반드시 @Entity를 선언해야한다. 특징 기본 생성자가 필수로 필요하다. public 또는 protected 생성자이어야 한다.(private은 안됨) JPA 스팩으로 규정되어있다....

2020년 1월 13일
·
0개의 댓글

[Spring Boot + JPA로 웹 애플리케이션 구현] 1. 프로젝트 생성

들어가기전... > 이 시리즈는 제가 지금까지 배웠던 내용을 바탕으로 웹 애플리케이션을 구현하는 과정을 담았습니다. > 중간중간 필요한 개념도 함께 정리할 예정입니다. Code Link 개발환경 기본환경 IDE: IntelliJ IDEA Ultimate OS

2020년 1월 9일
·
0개의 댓글

JPA 예외 처리

JPA 표준 예외는 크게 2가지로 나눌 수 있음 트랜잭션 롤백을 표시하는 예외 트랜잭션 롤백을 표시하지않는 예외 스프링 프레임워크 상에는 JPA 표준 예외를 변환한 추상화된 예외들이 존재하며, 이를 활용함 JPA 표준 예외는 javax.persistence.PersistenceException을 참고하면 됨 스프링 변환 예외는 org.springfram...

2020년 1월 3일
·
0개의 댓글

JPA 낙관적 락과 비관적 락

JPA 낙관적 락 JPA에서 Application Level에서의 Lock JPA의 버전 관리 기능을 사용함 낙관적 락은 트랜잭션을 커밋하기 전까지는 트랜잭션의 충돌을 알 수 없음 비관적 락 트랜잭션의 충돌이 발생한다고 가정하고 우선 락을 걸고 보는 방법 데이터베이스가 제공하는 lock기능을 사용함 대표적으로 select for update 구문이 존재 ...

2020년 1월 2일
·
0개의 댓글
post-thumbnail

practice - Spring JPA : embedded/embeddable을 이용한 Password 관리

서론 최근 spring-boot와 kotlin을 공부하고 있는데, spring jpa와 관련한 best practice를 알려주는 좋은 글을 찾아서 직접 해볼 만한 것들을 실습해보기로 했다. 이번에 진행한 실습의 내용 및 학습 목표는 아래와 같다. 내용 사용자 로그인 기능을 구현하되, 아래와 같은 세부 사항을 따른다. 아이디가 잘못되어 로그인이 실패한 경...

2019년 12월 10일
·
0개의 댓글

[JPA] 임베디드 타입(embedded type)

임베디드 타입(복합 값 타입) 새로운 값 타입을 직접 정의해서 사용할 수 있는데, JPA에서는 이것을 임베디드 타입(embedded type)이라 합니다. 중요한 것은 직접 정의한 임베디드 타입도 int, String처럼 값 타입이라는 것입니다. 임베디드 타입을 사용하지 않았을 때와 사용했을 때를 비교해 봅시다. 위는 평범한 회원 엔티티입니다. ...

2019년 12월 9일
·
0개의 댓글
post-thumbnail

Archiving - Spring JPA Best Practice

최근부터 Spring-boot와 kotlin을 이용한 backend application 구축하는 법을 많이 학습하고 있는데, 새로운 언어를 배울 때 가장 중요한 부분 중 하나는 그 언어의 best practice를 적극적으로 알아보고 활용하는 것이라고 생각한다. 마침 좋은 글이 있어 공유한다. https://github.com/cheese10yun/sp...

2019년 12월 6일
·
0개의 댓글

[JPA] 연관관계 매핑 기초 #1 (연관관계의 필요성, 단방향 연관관계)

이번 글에서는 **에 대해 알아보겠습니다. 이 시리즈 글은 김영한 님의 강의, 책을 보고 적은 것임을 알려드립니다. (강추) 1. 연관관계가 필요한 이유 > > - 회원과 팀이 있다. > - 회원은 하나의 팀에만 소속될 수 있다. > - 회원과 팀은 다대일 관계다. 객체 테이블에 맞추어 모델링(참조 대신 외래 키를 그대로 사용) image...

2019년 9월 24일
·
0개의 댓글

Entity에서 매핑 정보 분리하기

엔티티를 구현하다보면 여러 엔티티의 공통된 필드를 분리하고 싶은 경우가 있다. 이 때 사용할 수 있는 어노테이션을 정리해보려고 한다. 엔티티를 분리할 때도 상속과 조합을 사용할 수 있다. 이 때 사용할 수 있는 각 어노테이션은 다음과 같다. 상속: @MappedSuperclass 조합: @Embeddable, @Embedded @MappedSupercla...

2019년 9월 18일
·
0개의 댓글

[JPA] 영속성 컨텍스트 #2

이번 글에서는 영속성 컨텍스트의 특징(1차 캐시, 트랜잭션을 지원하는 쓰기 지연, 변경 감지)에 대해 알아보겠습니다. 이 시리즈 글은 김영한 님의 강의, 책을 보고 적은 것임을 알려드립니다. (강추) 영속성 컨텍스트의 특징 영속성 컨텍스트와 식별자 값 영속성 컨텍스트는 엔티티를 식별자 값(@Id로 테이블의 기본 키와 매핑한 값)으로 구분한다. 따라서 영속...

2019년 9월 6일
·
0개의 댓글

[JPA] 영속성 컨텍스트 #1

이번 글에서는 엔티티 매니저 팩토리, 엔티티 매니저, 영속성 컨텍스트의 개념, 엔티티의 생명 주기에 대해 알아보겠습니다. 이 시리즈 글은 김영한 님의 강의, 책을 보고 적은 것임을 알려드립니다. (강추) 영속성 컨텍스트 먼저 알고 가기 : 엔티티 매니저 팩토리와 엔티티 매니저 image.png 새로운 고객의 요청이 올때마다 엔티티 매니저 팩토리는 ...

2019년 9월 5일
·
0개의 댓글

[JPA] JPA 소개

김영한 님의 JPA 강좌를 들으면서 작성한 글입니다. > 강좌 보기 > 글에 대한 피드백 환영합니다. 객체와 관계형 데이터베이스의 차이 상속 객체는 상속관계가 있지만, 관계형 데이터베이스는 상속 관계가 없다. 연관관계 객체는 reference(참조)를 가지고 있다. (예를들어, 연관된 객체를 getter로 가져올 수 있음) 관계형 데이터베이스는 PK(P...

2019년 8월 30일
·
0개의 댓글

JPA Paging (페이지 나누기)

현재 2개의 프로젝트 진행하고 있다. > 두 프로젝트 모두 글 또는 영상을 페이징해서 프론트에 뿌려주는 API가 필요했다. > 그래서 이번에 PageRequest를 사용해 페이징 하는 것을 공부했고 공유하고자 한다. > 사용해보면서 느끼고 배운 지식이라 잘못된 내용이 있을 수 있습니다. > 피드백 부탁드립니다. JPA Paging이란? DB에 저장된 En...

2019년 8월 16일
·
0개의 댓글
post-thumbnail

Spring Boot + JPA DB Replication 설정하기

Spring Boot, JPA DB Replication 설정하기 DB Replication 이란? 데이터베이스 이중화 방식 중 하나로 하나의 Master DB와 여러대의 Slave DB로 구성한다. Master DB에 데이터의 변경이 감지되면 Master DB의 로그를 기반으로 Slave DB에 복제한다. Master DB에는 데이터의 변경이 필요...

2019년 4월 23일
·
0개의 댓글
post-thumbnail

Kotlin으로 Spring Boot Security - Login 맛보기

Kotlin을 이용하여 Spring Boot Security를 사용한 로그인 맛보기 기능을 구현 해봅니다.

2019년 2월 8일
·
1개의 댓글
post-thumbnail

Spring Boot JPA 사용해보기

오늘은 지난번에 알아보았던 JPA를 스프링에서 어떻게 적용하는 지 함께 알아보겠습니다. 저는 Spring Boot를 이용해서 실습을 진행해보겠습니다. > 본 실습은 jojoldu님의 블로그를 보면서 진행했습니다. (https://jojoldu.tistory.com/251?category=635883) 1.Dependency 추가 먼저 저는 maven...

2018년 12월 20일
·
4개의 댓글
post-thumbnail

Spring MyBatis와 JPA

현재 인턴을 진행하고 있는 곳에서 스프링과 MyBatis를 처음으로 경험해보았습니다. 이전까지는 학교 수업중에 실습으로 JDBC를 사용하여 데이터베이스를 의 사용에 대한 외국 친구들의 생각은

2018년 12월 18일
·
1개의 댓글