02.06 JPA 기초
2023. 2. 6. 09:46ㆍ개발일지
JPA (Java Persistence API) : 자바 ORM 기술에 대한 표준 명세
- 쿼리를 자동으로 만들어 줍니다.
- 그리고 어플리케이션 계층에서 sql 의존성을 줄여서 번거로운 작업이 매우매우 단축됩니다.
- Java 어플리케이션 상에서 DB의 연관관계를 표현해주기 위한 장치들을 가지고 있습니다.
ORM (Object Relational Mapping) : 객체 - 관계 매핑
- 객체와 관계형 DB의 데이터를 자동으로 매핑(연결)해주는 것을 말합니다.
- 객체 지향 프로그래밍은 클래스를 사용하고, 관계형 DB는 테이블을 사용합니다.
- 객체 모델과 관계형 모델 간에 불일치가 존재하며, ORM을 통해 객체 간의 관계를 바탕으로 SQL을 자동으로 생성하여 불일치를 해결합니다.
- DB 데이터 ← 매핑 → Object 필드
- 객체를 통해 간접적으로 데이터베이스 데이터를 다룹니다.
- Persistant API라고도 할 수 있습니다.
JPA 연관관계
JPA 연관관계 설정방법
- JPA의 경우는 Enitity 클래스의 필드 위에 연관관계 어노테이션 (@)을 설정해 주는 것만으로 연관관계가 형성됩니다.
'음식 배달 서버'를 개발한다고 가정 했을 때
관계 | 코드 선언 | Enitity | ex |
일대다 (1:N) | @OnetoMany | Order (1) : Food (N) | 배달 주문 1개에 음식 여러개 선택 가능 |
다대일 (N:1) | @ManyToOne | Owner (N) : Restaurant(1) | 음식점 주인 여러명이 하나의 음식점을 소유 가능 |
일대일 (1:1) | @OnetoOne | Order (1) : Coupon (1) | 배달 주문 1개 주문시, 쿠폰 1개만 할인 적용 가능 |
다대다 (N:N) | @ManyToMany | User (N) : Restaurant(N) | 고객은 음식점 여러개 찜 가능 음식점은 고객 여러명에게 찜 가능 |
Spring Data JPA 이해
Spring Data JPA
- JPA를 편리하게 사용하기 위해, 스프링에서 JPA를 Wrapping
- 스프링 개발자들이 JPA를 사용할 때 필수적으로 생성해야 하나, 예상 가능하고 반복적인 코드들 → Sping Data JPA가 대신 작성
- Repostiory 인터페이스만 작성하면, 필요한 구현은 스프링이 대신 알아서 해줍니다.
'개발일지' 카테고리의 다른 글
02.08 JPA 심화 (0) | 2023.02.08 |
---|---|
02.07 TIL (0) | 2023.02.07 |
02.04 HTTP, OSI, TCP/IP 특강 (TIL) (0) | 2023.02.04 |
02.03 Database 와 SQL (0) | 2023.02.03 |
02.03 SpringBoot 및 서버 이해 (0) | 2023.02.03 |