Code/코딩 끄적
JPA
코-빗
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는 모듈.
- Spring Data JPA는 Spring에서 제공하는 모듈 중 하나로, JPA의 사용이 쉽도록 도와준다.
- 이는 JPA를 한 단계 추상화시킨 Repository라는 Interface를 제공하여 이루어진다.
- Repository Interface에 정해진 규칙대로 Method를 입력하면 적합한 Query를 날리는 구현체를 만들어 Bean으로 등록한다.
Hibernate의 특징
- JDBC의 단점인 유사 작업 반복, 객체 지향적이지 못함을 해결할 수 있다.
- 장점
- 생산성
- 유지보수
- 종속적이지 않음
- 단점
- 성능
- 세밀함
- 러닝커브
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