web/JPA

JPA 기본 어노테이션 설명

반응형

JPA에서 사용되는 기본적인 어노테이션 몇개를 정리해보자.


@Entity

- 클래스와 테이블과 매핑한다고 JPA에게 알려준다. 이렇게 @Entity가 사용될 클래스를 엔티티 클래스라고 한다.


@Table

- 엔티티 클래스에 매핑할 테이블 정보를 알려준다. (이 어노테이션을 생략하면 클래스 이름을 테이블정보로 매핑한다.)


@Id

- 엔티티 클래스의 필드를 테이블에 기본키로 매핑한다. (데이터베이스는 엔티티를 구별할때 이 키값으로 구분한다.)


@Column

- 필드를 컬럼에 매핑한다.


매핑 정보가 없는 필드

- @Column을 생략하면 필드명을 사용해서 컬럼명과 매핑하게 된다. 만약 대소문자를 데이터베이스가 구분할 경우에는 꼭 위에 @Column어노테이션을 사용해서 진행해야한다.


#Dialect(방언)

- 데이터베이스마다 서로 다른 특징(Mysql의 limit, Oracle의 Rownum....)들을 JPA에서 방언(Dialect)라고 한다. 이렇게 데이터베이스 벤더사마다 서로 다른 기능을 사용해서 JPA를 사용하면 나중에 데이터베이스를 바꿀때 문제가 발생하기 때문에 문제가 없는 방언 클래스를 사용해야한다. 


위의 어노테이션이 적용된 클래스

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package com.wedul.springboottest.member.dto;
 
import lombok.Data;
 
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
 
/**
 * springboottest
 *
 * @author wedul
 * @since 03/10/2018
 **/
@Entity
@Data
@Table(name = "MEMBER")
public class Member {
 
  @Id
  @Column(name = "ID")
  private String id;
 
  @Column(name = "NAME")
  private String userName;
 
  // 매핑 정보가 없는 필드
  private int age;
 
}
 
cs


반응형