@GeneratedValue(strategy = GenerationType.AUTO)
@Table(name = "question_board")
@Entity
public class QuestionBoard {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
// 생략
}
Default로 동작되는 설정으로 DB 벤더에 따라 자동으로 3가지 전략 중 하나를 선택합니다. DB 벤더를 변경해도 전략을 수정하지 않아도 되지만, SEQUENCE나 TABLE 전략을 선택한다면 sequence나 키 테이블을 생성해두어야 함을 주의해야 합니다. 그러나 JPA ddl-auto 기능을 사용하면 hibernate가 알아서 시퀀스 테이블을 생성해 줍니다.
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Table(name = "question_board")
@Entity
public class QuestionBoard {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
// 생략
}
insert 쿼리가 pk 값 없이 수행되며 위와같이 데이터베이스의 auto_increment 동작이 수행됩니다.
-- auto-generated definition
create table question_board
(
id bigint auto_increment primary key,
-- 생략
);
ddl-auto: create 설정을 사용중이라면 위 SQL같이 pk 옵션이 auto_increment로 생성합니다.
📖 Reference
'코딩 공부 > web & Java' 카테고리의 다른 글
[Mockito] ArgumentMatchers 및 any,eq (1) | 2024.10.21 |
---|---|
[JPA] @PrePersist와 @PreUpdate (0) | 2024.10.18 |
[Spring / Redis] Spring에서 Redis 사용 (0) | 2024.10.10 |
[Spring / WebSocket] WebSocket와 STOMP (0) | 2024.10.05 |
[Spring / SSE] SSE(Server Sent Event) (1) | 2024.10.04 |