식별자 생성 방식
- 사용자가 직접 생성
- 도메인 로직으로 생성
- DB를 이용한 일련번호 사용
DB의 자동 증가 컬럼을 사용할 경우
- 식별자 생성으로 DB의 자동 증가 컬럼을 사용할 경우 JPA의 식별자 매핑에서 @GeneratedValue를 사용한다.
- 자동 증가 컬럼(IDENTITY)은 DB의 insert 쿼리를 실행해야 식별자가 생성되므로 도메인 객체를 리포지터리에 저장할 때 식별자가 생성된다.
- 이 이야기는 도메인 객체를 생성하는 시점에서는 식별자를 알 수 없고 도메인 객체를 DB에 저장한 뒤에 식별자를 구할 수 있음을 의미한다.
@Entity
@Table(name = "article")
public class Article {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
...
}