- 자바 ORM 표준 JPA 프로그래밍(김영한 지음) 책을 읽고 나중에 찾아보기 위한 목적으로 기록.
- 저작권에 문제가 될 시 삭제하겠습니다.
- JPA는 매핑 어노테이션을 분석해서 어떤 객체가 어떤 테이블과 관계가 있는지 알아낸다.
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;
...
}
- @Entity
- 이 클래스를 테이블과 매핑한다고 JPA에게 알려준다. 이렇게 @Entity가 사용된 클래스를 엔티티 클래스라 한다.
- @Table
- 엔티티 클래스에 매핑할 테이블 정보를 알려준다. 여기서는 name 속성을 사용해서 Member 엔티티를 MEMBER 테이블에 매핑했다. 이 어노테이션을 생략하면 클래스 이름을 테이블 이름으로 매핑한다. (더 정확히는 엔티티 이름을 사용한다.)
- @id
- 엔티티 클래스의 필드를 테이블의 기본 키(primary key)에 매핑한다. @id가 사용된 필드를 식별자 필드라 한다.
- @Column
- 필드를 컬럼에 매핑한다. 여기서는 name 속성을 사용해서 Member 엔티티의 username 필드를 MEMBER 테이블의 NAME 컬럼에 매핑했다.
- 매핑 정보가 없는 필드
- 매핑 어노테이션을 생략하면 필드명을 사용해서 컬럼명으로 매핑한다. 만약 대소문자를 구분하는 데이터베이스를 사용한면 @Column(name="AGE") 처럼 명시적으로 매핑 해야한다.