자바/JPA
[4단원] __**기본 키 Primary Key 매핑**__
OverTheHorizon3410
2023. 10. 22. 00:55
기본 키 Primary Key 매핑
1. 기본 키 직접 할당
JPA에서 @Id
어노테이션을 사용해 엔티티의 기본 키를 지정할 수 있습니다.
기본 키를 직접 할당하는 방식은 어플 로직에서 기본 키 값을 지정해주는 방식입니다.
예제
@Entity
public class Member {
@Id
@Column(name = "ID")
private String id;
// ...
}
2. 데이터베이스 자동 생성 키 사용
데이터베이스 기능, 예를 들어 오라클의 시퀀스 오브젝트나 MySQL의 AUTO_INCREMENT 기능을 사용해 자동으로 기본 키 값을 생성할 수 있습니다.
3. JPA의 기본 키 생성 전략
- 직접 할당
- 애플리케이션에서 기본 키를 직접 할당
- IDENTITY
- 데이터베이스에 기본 키 생성을
위임
,각 DBMS의 자동 증가 칼럼 사용
- 데이터베이스에 기본 키 생성을
- SEQUENCE
데이터베이스의 시퀀스 오브젝트
를 사용해 기본 키를 할당
- TABLE
키 생성을 위한 별도의 테이블을 사용
, 모든 DBMS에서 사용 가능
4. @GeneratedValue 어노테이션
기본 키를 자동으로 생성하려면, @Id
어노테이션과 함께 @GeneratedValue
어노테이션을 사용하고, 원하는 키 생성 전략을 선택합니다.
주의사항
하이버네이트 사용 시, hibernate.id.new_generator_mappings
속성을 true
로 설정해야 합니다.
이 옵션은 하이버네이트의 새로운 키 생성 전략을 활성화합니다.
예제
<property name="hibernate.id.new_generator_mappings" value="true" />
기본 키 생성 전략 사용 예
예제
@Entity
public class Member {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID")
private Long id;
// ...
}
여기서, @GeneratedValue
어노테이션과 strategy
속성을 사용해 원하는 키 생성 전략을 지정할 수 있습니다.
Uploaded by N2T