JPA에서 ID 생성 전략은 엔티티의 기본 키(primary key)를 자동으로 생성하는 방식을 정의하는 방법입니다. 이를 통해 데이터베이스에 삽입할 때 고유한 ID 값을 생성하고 관리할 수 있습니다. JPA는 ID 생성 전략을 @GeneratedValue 어노테이션으로 설정하며, 다양한 전략을 제공합니다.
AUTO
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;IDENTITY
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;SEQUENCE
hibernate_sequence라는 이름의 시퀀스를 사용합니다.@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "my_seq_gen")
@SequenceGenerator(name = "my_seq_gen", sequenceName = "my_sequence", allocationSize = 1)
private Long id;allocationSize: 기본값은 50으로, 시퀀스를 미리 가져오는 수량을 설정하여 데이터베이스 호출을 줄입니다.TABLE
@Id
@GeneratedValue(strategy = GenerationType.TABLE, generator = "table_gen")
@TableGenerator(
name = "table_gen",
table = "id_gen_table",
pkColumnName = "gen_name",
valueColumnName = "gen_value",
pkColumnValue = "entity_id",
allocationSize = 1
)
private Long id;데이터베이스의 특성
성능
이식성
비즈니스 요구사항
추가 학습 자료