본문 바로가기

Backend/자바 Java

@Entity / @Id / @Column(name = "team_id")

출처
https://ithub.tistory.com/24

오늘은 Spring Data JPA 기본키 매핑하는 방법에 대해서 알아보겠습니다. 

 

Spring Data JPA 에서는 엔티티의 기본키를 @Id 어노테이션을 사용하여 설정합니다.

 

@Entity

public class Team {

        @Id

        @Column(name = "team_id")

        private Long id;

 

(이하 생략)

}

 

이때, 기본키를 할당하는 방법으로는 두가지가 있습니다.

  • 직접할당 : 기본 키를 어플리케이션에서 직접 할당 해주는 방법 
  • 자동생성 : 데이터베이스가 자동으로 할당해주는 방법 (예를들어, 오라클은 sequence, MySQL의 auto_increment)

데이터베이스 벤더마다 sequence, auto_increment 등 기본키를 자동생성하는 지원하는 방법이 다릅니다.

Spring Data JPA는 이를 해결하기위해, 4가지 자동생성 방법을 제공합니다.



기본키 자동생성 방법 

  • IDENTITY : 기본 키 생성을 데이터베이스에 위임하는 방법 (데이터베이스에 의존적)
    - 주로 MySQL, PostgresSQL, SQL Server, DB2에서 사용합니다.
  • SEQUENCE : 데이터베이스 시퀀스를 사용해서 기본 키를 할당하는 방법 (데이터베이스에 의존적)
    - 주로 시퀀스를 지원하는 Oracle, PostgresSQL, DB2, H2에서 사용합니다. 
    - @SequenceGenerator를 사용하여 시퀀스 생성기를 등록하고, 실제 데이터베이스의 생성될 시퀀스이름을 지정해줘야 합니다.
  • TABLE : 키 생성 테이블을 사용하는 방법
    - 키 생성 전용 테이블을 하나 만들고 여기에 이름과 값으로 사용할 컬럼을 만드는 방법입니다.
    - 테이블을 사용하므로, 데이터베이스 벤더에 상관없이 모든 데이터베이스에 적용이 가능합니다.
  • AUTO : 데이터베이스 벤더에 의존하지 않고, 데이터베이스는 기본키를 할당하는 벙법
    - 데이터베이스에 따라서 IDENTITY, SEQUENCE, TABLE 방법 중 하나를 자동으로 선택해주는 방법입니다.
    - 예를들어, Oracle일 경우 SEQUENCE를 자동으로 선택해서 사용합니다. 따라서, 데이터베이스를 변경해도 코드를 수정할 필요가 없습니다.

 

기본 키를 직접 할당하기 위해서는 @Id 어노테이션만 사용하면 되고, 자동 생성 전략을 사용하기 위해서는 @Id에 @GeneratedValue를 

추가하고 원하는 키 생성 전략을 선택하면 된다.



기본키 자동생성 사용방법

  • @Id 어노테이션을 사용한다.
  • @GeneratedValue를 사용한다.
  • @GeneratedValue에 원하는 키 생성 전략을 선택한다. (IDENTITY, SEQUENCE, TABLE, AUTO)

'Backend > 자바 Java' 카테고리의 다른 글

@OneToMany 단방향  (0) 2020.08.20
JSP(Java Server Pages)  (0) 2020.08.20
@ToString  (0) 2020.08.20
@EqualsAndHashCode  (0) 2020.08.20
JPA / Hibernate / Spring Data JPA  (0) 2020.08.20