Server Programming/SpringBoot

Spring Boot - Entity, Repository

Dev.BeryL 2022. 1. 26. 19:31
728x90

JPA를 쉽게 사용하기 위해 스프링에서 제공하는 프레임워크

Main Keyword : Repository

사용자는 인터페이스, 메소드만 정의하면 Spring data가 이름을 분석하여 JPQL 실행

  • JpaRepository -> CRUD 기능을 제공하는 인터페이스해당 인터페이스를 상속받아 Spring data jpa 사용

public interface productRepository extends JPARepository<product,Long>, productRepositorySupport{ //CRUD Method….}

 

ref : https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#preface

 

쿼리 메소드 기능 Spring Data는 메소드 이름에 있는 특정 키워드들을 인식하여 쿼리를 생성


사용중인 실제코드 예제

findByClientId(Long clientId); -> select c from ClientPlannerBind c where c.clientId = ?1

 

프로젝트 연습 실습 해보기

new > project

Spring Initializr 선택

Project SDK : 8

java version : 8

spring Boot : 2.4.2

Dependency : JPA, Mysql

domain.product 하위에 2개의 Package 생성

  1. entity
  2. repository(DAO)
  3. DTO
  4. controller
  5. service

 

실제 DB의 테이블과 매칭될 클래스

  • 테이블과 Mapping될 클래스임을 나타낸다.
  • Entity 클래스 또는 가장 Core한 클래스라고 부른다.
  • @Entity, @Column, @Id 등을 이용

Mapping Annotation

Object <-> Table : @Entity, @Table

Primary Key : @Id

Field <-> Column : @Column

Join : @ManyToOne, @JoinColumn

mac : command + N

windows : Alt + Insert

Getter and Setter 선택 => 차후엔 Builder annotation 사용.

(Setter 는 사용 안하는것을 권장)

실제로 DB에 접근하는 객체

  • Persistence Layer(DB에 data를 CRUD하는 계층)이다.

Service와 DB를 연결하는 고리의 역할을 한다.

SQL를 사용(개발자가 직접 코딩)하여 DB에 접근한 후 적절한 CRUD API를 제공한다.

  • JPA 대부분의 기본적인 CRUD method를 제공하고 있다.
  • extends JpaRepository<User, Long>

extends CrudRepository -> JPA CRUD 기능들 사용

PagingAndSortingRepository -> CRUD + Paging, Sorting 기능 제공

CrudRepository

 

CrudRepository (Spring Data Core 2.6.1 API)

Returns all instances of the type T with the given IDs. If some or all ids are not found, no entities are returned for these IDs. Note that the order of elements in the result is not guaranteed.

docs.spring.io

 

DB connection 

spring.datasource.url=jdbc:mysql://localhost:3306/mydb?serverTimezone=UTC

spring.datasource.username=root

spring.datasource.password=root

 

CRUD Operation

Paging, Sort Operation

반응형