Back-End/JPA(자바 ORM 표준 기술)

[JPA][JPA 시작] - 객체 매핑

얄루몬 2022. 5. 25. 21:56

📖본 포스팅은 '자바 표준 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 설정을 따로 하지 않아도 자동으로 처리해준다고 한다.