Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- Spring Batch
- UsernamePasswordAuthenticationFilter
- openapi3
- axios
- Reduxpender
- cheerio
- OpenStack
- SpringBoot
- Filter
- Crawling
- AuthenticatoinProvide
- cloud native
- vue
- MSA
- Spring REST Docs
- preventdefault
- SpringRESTDocs
- 리액트
- T-OTP
- MFA
- stopPropogation
- tasklet
- REACT
- Pender
- Spring Security
- vuejs
- gradle
- SWAGGER
- Flyway
- JavaScript
Archives
- Today
- Total
Miracle Morning, LHWN
11. JPA (Java Persistence API) 본문
JPA (Java Persistence API)
Java 어플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스로,
"프레임워크를 통해 데이터베이스에 쉽게 접근할 수 있는 통로"이다.
인터페이스이기 때문에 구현체로 JPA 를 구현하기 위한 라이브러리가 있다.
- Hibernate ✅
- Eclipse Link ✅
- Data Nucleus
- OpenJPA ✅
- TopLink Essentials
Hibernate
- JPA 의 구현체이다.
- HQL 이라는 강력한 쿼리 언어를 포함한다.
- 객체 지향적이며, 객체를 통한 데이터 바인딩으로 쉽게 데이터를 다룬다.
# 장점
- 객체 지향적이라 객체에 집중하여 개발이 가능하다.
- 유지보수 및 생산성이 좋다.
- 데이터베이스 교체에 용이하다.
# 단점
- 초기에 진입 장벽이 존재한다.
OpenJPA
- Apache 에서 만든 도구이다. (http://openjpa.apache.org)
- JAVA EE 5 사양에서 가능한 100% 오픈 소스 구현
- BEA 시스템이 솔라 메트릭을 인수한 결과로 아파치에 기부한 결과이다.
# 장점
- 좋은 문서 풀을 제공한다.
- 사용하기 용이하다.
# 단점
- 약간의 버그가 존재한다.
JPA 의 흐름
화면을 통해 들어온 요청은 Controller - Service 를 통해 어떤 처리를 할지 결정한다. 기존 ORM, Mybatis 의 경우에는 Mapper 를 통해서 테이블에 연동이 된다. VO 혹은 DTO 는 테이블 형태로 정의되어 실제 데이터베이스와 연결되어 있다.
이 테이블에 데이터가 바인딩 되고, 바인딩된 테이블은 JPA Repository (엔티티 매니저)를 통해 Service-Controller 로 화면에 출력된다.
JpaRepository 계층 구조
JpaRepository 는 PagingAndSortingRepository 를 상속 받고 있고, PagingAndSortingRepository 는 CrudRepository 를 상속 받고 있는 구조이다.
'IT 기술 > [JAVA] Spring Boot' 카테고리의 다른 글
13. DDL-AUTO 와 Flyway (0) | 2021.05.22 |
---|---|
12. JPQL, Criteria, Query DSL (0) | 2021.05.17 |
10. JPA 를 사용한 페이징(Paging) 처리 (0) | 2021.05.11 |
8-3. 프로젝트에서 JPA 직접 사용해보기 (0) | 2021.05.11 |
8-2. 프로젝트에서 JPA 직접 사용해보기 (0) | 2021.05.11 |
Comments