JAVA

[JPA] JPA 기본 객체 매핑

로춘남 2022. 1. 20. 15:49
728x90
package jpabook.start;

import javax.persistence.*;  //**

@Entity
@Table(name="MEMBER")
public class Member {

    @Id
    @Column(name = "ID")
    private String id;

    @Column(name = "NAME")
    private String username;

    private Integer age;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }
}

 

매핑정보

매핑 정보 회원 객체 회원 테이블
클래스와 테이블 Member MEMBER
기본 키 id ID
필드와 컬럼 username NAME
필드와 컬럼 age AGE

 

매핑 어노테이션 살펴보기

 

@Entity

: 이 클래스를 테이블과 매핑한다고 JPA에 알려준다. @Entity가 사용된 클래스를 엔티티 클래스라고함

 

@Table

: 엔티티 클래스에 매핑할 테이블 정보를 알려준다. 위에 예시는 name속성을 사용하여 Member 엔티티를 MEMBER 테이블에 매핑하였다. 이 어노테이션을 생략하면 클래스 이름을 테이블 이름으로 매핑한다.

 

@Id

: 엔티티 클래스의 필드를 테이블의 기본 키(Primary Key)에 매핑. 여기서는 엔티티의 id 필드를 테이블의 ID 기본 키 컬럼에 매핑. 이렇게 @Id가 사용된 필드를 식별자 필드라고 부른다.

 

@Column

: 필드를 컬럼에 매핑. 여기서는 name 속성을 사용하여 Member 엔티티의 username 필드를 MEMBER 테이블의 NAME 컬럼에 매핑

 

※ 매핑정보가 없는 필드.

: age 필드에는 매핑 어노테이션이 없다. 매핑 어노테이션을 생략하면 필드명을 사용하여 컬럼명으로 매핑. 여기서는  필드명이 age이므로 age 컬럼으로 매핑.

 

우리는 매핑정보로 인하여 JPA가 어떤 엔티티를 어떤 테이블에 저장해야 하는지 알 수가 있다.

728x90