/////
Search
Duplicate
6️⃣

식별자 생성 기능

: 식별자는 크게 세 가지 방식 중 하나로 생성한다.
사용자가 직접 생성
도메인 로직으로 생성
DB를 이용한 일련번호 사용
: 이메일 주소처럼 사용자가 직접 식별자를 입력하는 경우는 식별자 생성 주체가 사용자이므로 도메인 영역에 별도로 식별자 생성 기능을 구현해줄 필요는 없다.
: 식별자 생성 규칙이 존재한다면 엔티티를 생성할 때 엔티티가 별도 서비스로 식별자 생성 기능을 분리해야 한다. 식별자 생성 규칙은 도메인 규칙이므로 도메인 내에 위치하여야 한다.
: 외에도 식별자 생성 규칙을 구현하기에 적합한 또 다른 장소는 리포지터리로 다음과 같이 리포지터리 인터페이스에 식별자를 생성하는 메서드를 추가하고 리포지터리 구현 클래스에 알맞게 구현하면 된다.
public interface ProductRepository { ...// save() 등 다른 메서드 // 식별자를 생성하는 메서드 ProductId nextId(); }
Java
복사
: DB 자동 증가 칼럼을 사용하려면 식별자 매핑 시 @GeneratedValue를 사용한다. 이 경우 DB에 insert 쿼리가 실행돼야 식별자가 생성된다.
: JPA의 식별자 생성 기능을 사용하는 경우에도 저장 시점에서 식별자를 생성한다.