코-빗 2024. 3. 24. 16:22
728x90

JPA ( Java Persistence API )

JPA는 표준 ORM (Object-Relational Mapping) 으로 Spring이 아닌 Java에서 제공하는 API
EJB에서 제공되던 Entity Bean을 대체하는 기술

SQL Mapper 과 ORM의 차이

  • SQL Mapper :
    • SQL과 Object Field를 매핑
    • SQL 문장으로 직접 DB를 다룬다. 즉 SQL을 명시해야한다.
    • 대표적으로 Mybatis, JdbcTempletes 등이 있다.
  • ORM :
    • DB와 Object Field를 매핑
    • 직관적인 코드(Method)로 데이터를 조작
    • 객체간의 관계를 바탕으로 SQL을 자동 생성
    • JPA, Hibernate

Spring Data JPA

  • JPA는 Interface, Hibernate는 JPA의 구현체, Spring Data JPA는 모듈.

JPA_Design

  • Spring Data JPA는 Spring에서 제공하는 모듈 중 하나로, JPA의 사용이 쉽도록 도와준다.
    • 이는 JPA를 한 단계 추상화시킨 Repository라는 Interface를 제공하여 이루어진다.
    • Repository Interface에 정해진 규칙대로 Method를 입력하면 적합한 Query를 날리는 구현체를 만들어 Bean으로 등록한다.

Hibernate의 특징

  • JDBC의 단점인 유사 작업 반복, 객체 지향적이지 못함을 해결할 수 있다.
  • 장점
    1. 생산성
    2. 유지보수
    3. 종속적이지 않음
  • 단점
    1. 성능
    2. 세밀함
    3. 러닝커브

JPA를 사용하려면

  • @Entity -> Table
  • Repository -> Query

application.properties / application.yml 에 추가할 내용

JPA Repository

CRUDMethod Name

READ find____ 로 시작
Delete delete____ 로 시작
Create save
Update READ 한 값 변경 -> save

JPA에서 기본으로 제공하지않는 Method를 Repository interface에 추가하여 사용할 수 있다.

참고 링크 : Spring Docs

@Builder

Lombok 의 Builder를 사용하면 객체 생성에서 편리함을 가질 수 있다.

728x90