본문 바로가기
IT/spring

스프링 @TableGenerator 어노테이션

by 뉴코딩맨 2023. 7. 3.
 
스프링 프레임워크에서 @TableGenerator 어노테이션은 JPA(Java Persistence API)에서 엔티티의 기본 키 값을 자동으로 생성하는데 사용됩니다. @TableGenerator 어노테이션에 대해 알아보고, 예제를 통해 설명하겠습니다.
 
 

@TableGenerator 어노테이션 소개

@TableGenerator 어노테이션은 스프링 프레임워크의 JPA 구현인 Hibernate에서 제공하는 어노테이션입니다. 이 어노테이션을 사용하면 데이터베이스 테이블을 기반으로 엔티티의 기본 키 값을 자동으로 생성할 수 있습니다.
 

@TableGenerator 어노테이션 예제

다음은 @TableGenerator 어노테이션을 사용한 예제 코드입니다.
 
@Entity
@TableGenerator(
    name = "emp_id_generator",
    table = "id_generator",
    pkColumnName = "gen_name",
    valueColumnName = "gen_value",
    allocationSize = 1
)
public class Employee {
    
    @Id
    @GeneratedValue(strategy = GenerationType.TABLE, generator = "emp_id_generator")
    private Long id;
    
    // 엔티티의 다른 필드들...
    
    // 생성자, 게터/세터 등...
}

 

위의 예제에서는 Employee 엔티티의 기본 키 값을 생성하기 위해 @TableGenerator 어노테이션을 사용하였습니다. @TableGenerator 어노테이션은 다양한 속성을 가지고 있으며, 중요한 몇 가지 속성을 살펴보겠습니다.
 
  • name: 테이블 생성기의 이름을 지정합니다.
  • table: 생성기의 키 값을 저장하는 테이블의 이름을 지정합니다.
  • pkColumnName: 키 컬럼의 이름을 지정합니다.
  • valueColumnName: 키 값을 저장하는 컬럼의 이름을 지정합니다.
  • allocationSize: 키 값의 할당 크기를 지정합니다.
위의 예제에서는 emp_id_generator라는 이름의 테이블 생성기를 정의하고, Employee 엔티티의 id 필드에 이 생성기를 연결하여 기본 키 값을 자동으로 생성하도록 설정하였습니다.

 

 

결론

@TableGenerator 어노테이션은 스프링 프레임워크에서 JPA를 사용할 때 엔티티의 기본 키 값을 자동으로 생성하는 데 사용됩니다. 이를 통해 데이터베이스 테이블을 기반으로 유니크하고 일련번호로 구성된 키 값을 생성할 수 있습니다. 이를 활용하여 데이터베이스와 자바 객체 간의 일관성을 유지하고, 효율적인 데이터베이스 조작을 할 수 있습니다.
 

댓글