Table of Content
JPA Entity ID 생성방식
ID 생성방식은 크게 수동생성 방식과 자동생성 방식이 있습니다.
수동생성 방식
수동 생성방식은 애플리케이션에서 값을 생성하는 방식입니다.
uniq 함은 애플리케이션이 보장해야 합니다.
GeneratedValue
를 사용하면 오류가 발생합니다.
@Id
// @GeneratedValue(strategy = GenerationType.IDENTITY)
@NotNull
private Integer msgkey;
자동생성 방식
NotNull
을 사용하면 오류가 발생합니다.
IDENTITY
MySQL, PostgreSQL, SQL Server, DB2 에서 사용합니다.
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
// @NotNull
private Integer msgkey;
SEQUENCE
Oracle, PostgreSQL, DB2, H2 DB 에서 사용합니다.
@Entity
@SequenceGenerator(
name = "USER_SEQ_GENERATOR"
, sequenceName = "USER_SEQ"
, initialValue = 1
, allocationSize = 1
)
public class User {
@Id
@GeneratedValue(
strategy = GenerationType.SEQUENCE
, generator = "USER_SEQ_GENERATOR"
)
private long id;
}