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
'JAVA' 카테고리의 다른 글
[Java] StringTokenizer hasMoreTokens() nextToken() (0) | 2022.01.24 |
---|---|
[Java] 불필요한 객체 생성를 피하기 이펙티브 자바 new String (0) | 2022.01.21 |
[JPA] JPA 기본 시작 (0) | 2021.12.21 |
[JPA] JPA란 무엇인가? (0) | 2021.12.21 |
[Java] Java 8 / Java 11 차이 자바 (0) | 2021.11.01 |