📖본 포스팅은 '자바 표준 ORM 기술 JPA - 김영한'님의 책을 보고 작성되었습니다.
목차
1. 객체 매핑이란?
2. 매핑 정보
3.persistence.xml 설정
객체 매핑이란?
- SQL에서 사용할 테이블과 자바 클래스를 매핑해주어야 한다.
- JPA를 사용하기 위해서는 회원 테이블과 회원 클래스를 매핑해주어야 한다.
매핑 정보
매핑 정보 | 회원 객체(클래스) | 회원 테이블 |
클래스와 테이블 | Member | MEMBER |
기본 키 | id | ID |
필드와 컬럼 | username | NAME |
필드와 컬럼 | age | AGE |
회원 객체(클래스)
package jpabook.jpashop.domain.member;
import lombok.Getter;
import lombok.Setter;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Getter
@Setter
@Table(name = "MEMBER")
public class Member {
@Id
@Column(name = "ID")
private String id;
@Column(name="NAME")
private String username;
//매핑 보가 없는 필드
private Integer age;
}
- @Entity
- 이 클래스를 테이블과 매핑한다고 JPA에게 알려준다. 이렇게 @Entity가 사용된 클래스를 엔티티 클래스라고 한다.
- @Table
- 엔티티 클래스에 매핑할 테이블 정보를 알려준다.
- name 속성을 사용해 Member 엔티티를 MEMBER 테이블에 매핑하였다.
- 이 어노테이션을 생략하면 클래스 이름을 테이블 이름으로 매핑한다.(더 정확하게는 엔티티 이름을 사용한다. 엔티티 이름은 다다음 장에서 나올 것이다.
- @Id
- 엔티티 클래스의 필드를 테이블의 기본 키에 매핑한다.
- @Id가 사용된 필드를 식별자 필드라고 한다.
- @Column
- 필드를 컬럼에 매핑한다.
- 매핑 정보가 없는 필드
- 매핑 어노테이션을 생략하면 필드명을 사용해서 컬럼명으로 매핑해준다.
회원 테이블
CREATE TABLE MEMBER(
ID VARCHAR(255) NOT NULL,
NAME VARCHAR(255),
AGE INTEGER,
PRIMARY KEY(ID)
);
클래스와 테이블 매핑
persistence.xml 설정
스프링을 사용하면persistence.xml 설정을 따로 하지 않아도 자동으로 처리해준다고 한다.
'Back-End > JPA(자바 ORM 표준 기술)' 카테고리의 다른 글
[JPA][영속성 관리] - CURD로 알아보는 영속성 컨텍스트의 필요성과 이점 (0) | 2022.05.26 |
---|---|
[JPA][영속성 관리] - 영속성 컨텍스트 (0) | 2022.05.26 |
[JPA][영속성 관리] - 엔티티 매니저 팩토리와 엔티티 매니저 (0) | 2022.05.26 |
[JPA][JPA 시작] - JPA 애플리케이션 개발 시작 (0) | 2022.05.26 |
[JPA][JPA 시작] - 기본 설정 (0) | 2022.05.25 |