-
ORM: Object Relational Mapping
객체지향 패러다임을 관계형 데이터베이스에 보존하는 기술
ORM은 객체지향의 구조가 관계형 데이터베이스와 유사하다는 점에서 시작
객체지향 class 인스턴스 참조 관계형 데이터 베이스 table row(레코드 or 튜플) 관계 => 객체지향을 자동으로 관계형 데이터베이스에 맞게 처리해주는 것을 의도
JPA: Java PersistenceAPI
ORM을 Java 언어에 맞게 사용하는 스펙
JPA는 스펙이기 때문에 스펙을 구현하는 구현체마다 회사의 이름이나 프레임워크의 이름이 다름
=> 대표적으로 Hibernate가 있음
(ORM(JPA(Hibernate))) 의 구조
Spring Data JPA가 개발에 필요한 것
• JPA를 통해서 관리하게 되는 객체(엔티티 객체)를 위한 엔티티 클래스
• 엔티티 객체들을 처리하는 기능을 가진 Repository
JpaRepository 인터페이스 : Hibernate를 이용하기 위해 제공하는 API
JpaRepository를 사용할 때는 엔티티의 타입 정보와 @Id의 타입을 지정
=> 인터페이스 선언만으로 자동으로 스프링 빈에 등록됨
< 메서드 >
insert : save(엔티티 객체)
select : findById(키타입), getOne(키타입)
update : save(엔티티 객체)
delete : deleteById(키 타입), delete(엔티티 객체)
테스트 코드는 작성한 적 없는 클래스의 이름이 출력됨 => 동적 프록시라는 방식으로 만들어짐
'Spring' 카테고리의 다른 글
[Spring Security] kakao 소셜 로그인 (0) 2023.11.21 Event Publisher / Event Listener (0) 2023.07.04 [Test Code] @NotBlank 테스트 코드 작성 방법 (0) 2023.07.03 SecurityConfig - SecurityFilterChain (0) 2022.11.13 [Querydsl] BooleanBuilder과 BooleanExpression (0) 2022.08.26