@Id 

식별자 필드임

엔티티의 필드를 테이블의 기본 키( PK, Primary key )에 매핑 함

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

@GeneratedValue(strategy=???)

 

자동 생성
대리 키 사용 방식
즉 @GeneratedValue 어노테이션의 strategy( 전략 ) 속성에 따라 기본 키 값이 생성됩니다.


AUTO : DB 종류에 따라 JPA가 알맞은 것을 선택합니다.
          ( Oracle은 SEQUENCE , MySQL은 IDENTITY를 선택 )

@GeneratedValue(strategy=GenerationType.AUTO)

 

IDENTITY : 기본 키 생성을 데이터베이스에 위임합니다.
               ( MySQL, PostgreSQL, SQL Server, DB2에서 사용 가능 )

@GeneratedValue(strategy=GenerationType.IDENTITY)

 

SEQUENCE  : 데이터베이스 시퀀스를 사용해서 기본 키를 할당합니다.
                  ( Oracle, PostgreSQL, DB2, H2 )

@GeneratedValue(strategy=GenerationType.SEQUENCE)

 

TABLE : 키 생성 전용 테이블을 만들어서 sequence처럼 사용합니다.

@GeneratedValue(strategy=GenerationType.TABLE)

 

직접 할당
PK 값을 JPA에 위임하지 않고, 직접 부여하는 방법입니다.


@Column

엔티티의 필드를 테이블의 칼럼에 매핑합니다.

@Column(name="name", nullable=false, length=100) 
private String name; 

name    : 필드와 매핑할 테이블의 컬럼 이름 ( 기본값은 필드 이름 ) 
nullable : true : null 허용 (기본 값) 

             false : not null 
length : 문자 길이 제약 조건 기본 값은 255

           String 타입에만 적용 가능

 

블로그 이미지

나무뚱이

,