@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 타입에만 적용 가능
'프로그래밍 > JPA' 카테고리의 다른 글
[JPA] AuditingEntityListener, createDate, modifiedDate를 통한 ROW 생성 시간 및 수정 시간 기록하기 (0) | 2020.11.07 |
---|