[JPA] jpa정의 / 사용이유 / 작성방법

2023. 12. 31. 12:05SpringBoot+JPA

반응형

 

JPA (Java Persistence API)

 

자바 애플리케이션에서

관계형 데이터베이스의 데이터를 영속적으로 저장하고 검색할 수 있도록 도와주는

자바 표준 ORM(Object-Relational Mapping) 기술

 

데이터베이스와 객체 지향 프로그래밍 언어 간의 불일치를 해결

 


 

JPA 특징

java에서 직접 질의어를 구성해서 동작 (servlet에서)

Mybatis 라이브러리를 이용해서 동작(처음부터 사용자가 질의어를 작성)

JPA 라이브러리는 필드명과 예약된 형식으로 구성하면 자동으로 질의어 작성

DSLQuery라이브러리는 JPA에 만들기 힘든 질의어를 작성 


 

값이 전달되는 과정

View ← DTO → Controller DTO Service Entity Repository Entity

                                                            Service ---> Repository (DTO에서 Entity로 변환)

                                                            Repository ---> Service (Entity에서 DTO로 변환)

 

(Repository는 DTO가 아닌! 반드시 Entity로 변환이 필요!)

 


 

작성요령

application.java(시작파일)에서 날짜 등록처리를 위한 어노테이션 선언
@EnableJpaAuditing


1. DTO 설계


2. Entity 설계 (실행 -> 데이터베이스에 테이블을 생성 확인)
    1) 사용할 테이블과 필드를 연동


3. Repository 설계 (Test에서 CRUD 및 사용자가 생성한 메소드를 test)
   1) 테이블을 이용할 메소드를 작성
   2) 기본 메소드와 추가할 메소드가 있으면 규칙에 맞춰서 메소드 이름을 생성(내용x)


4. Service 설계 (Test에서 사용자가 작성한 메소드를 테스트)
   1) 사용자가 임의로 메소드를 생성(규칙없음)
   2) Controller에서 전달받은 값을 Entity 변환해서 Repository에 전달
   3) Repository에서 전달받은 값을 DTO 변환해서 Controller에 전달
   4) 각 전달은 메소드(받는 작업)나 return(보내는 작업)으로 작업

 

반응형