테이블
CREATE TABLE MEMBER( ID VARCHAR(255) NOT NULL, NAME VARCHAR(255), AGE INTEGER NOT NULL, PRIMARY KEY (ID));
클래스
public class Member{ private String id; private String username; private Integer age; //getter(), setter()...}
매핑 정보
|매핑 정보|회원 객체|회원 테이블| |:—|:—|:—| |클래스와 테이블|Member|MEMBER| |기본키|id|ID| |필드와 컬럼|username|NAME| |필드와 컬럼|age|AGE|
JPA가 제공하는 매핑 어노테이션 추가
@Entity@Table(name = "MEMBER")public class Member{ @Id @Column(name = "ID") private String id; @Column(name = "NAME") private String username; //매핑 정보가 없는 필드 private Integer age;}
클래스와 테이블 매핑
JPA는 매핑 어노테이션을 분석해서 객체와 테이블간의 관계를 알아낸다.
@Entity
이 클래스를 테이블과 매핑한다고 JPA에게 알려준다. 이 클래스를 엔티티 클래스라고 한다.
@Table
엔티티 클래스에 매핑할 테이블 정보를 알려준다.
name속성 생략 시 클래스 이름으로 매핑한다.(엔티티 이름으로 매핑)
@Id
엔티티 클래스의 필드를 테이블의 기본키에 매핑한다.
이 어노테이션이 사용된 필드를 식별자 필드라고 한다.
@Column
필드를 컬럼에 매핑한다.
매핑 정보가 없는 필드 필드명을 컬럼명과 매핑
대소문자를 구분하는 데이터베이스 주의