티스토리 뷰
이 부분은 영속성 컨텍스트에 관한 글을 보고 오면 더 이해가 가기 쉽다.
영속성 컨텍스트는 엔티티를 식별자 값으로 구분하므로 엔티티를 영속 상태로 만들려면 식별자 값이
반드시 있어야 한다. 식별자를 할당하는 다양한 전략이 있다. 그 중 많이 쓰는 2가지 전략을 알아보겠다.
1. 기본키 직접 할당 전략
기본 키를 직접 할당하려면 @Id로 매핑시키면 된다.
@Id
@Column(name="id")
private String id;
직접 할당하는 방법은 em.persist() 로 엔티티를 저장하기 전에 에플리케이션에서 기본 키를 직접 할당하는 방법이다.
Member member = new Member();
member.setAge(18); //직접 할당
em.persist(board);
2. IDENTITY 전략
IDENTITY는 기본 키 생성을 데이터베이스에 위임하는 전략이다. 한마디로 기본 키 생성을 DB에서 대신 해준다는 소리다. 주로 MySQL, PostgreSQL 등 에서 사용한다. 그 중에서 많이 쓰이는 MySQL의 AUTO_INCREMENT 기능은 데이터베이스가 기본 키를 자동으로 생성 해준다.
CREATE TABLE MEMBER (
ID Integer AUTO_INCREMENT PRIMARY KEY,
NAME varchar(255)
);
데이터베이스에서 INSERT를 할 때 ID를 비워두면 자동으로 값이 채워진다.
엔티티에선 아래 코드처럼 @Id와 @GeneratedValue 어노테이션을 같이 사용해야 한다.
@Entity
public class Member {
@Id @GeneratedValue(strateay = GenerationType.IDENTITY)
private Long id;
}
'JPA' 카테고리의 다른 글
패러다임의 불일치 (0) | 2022.07.18 |
---|---|
JPA가 생겨난 이유 (0) | 2022.07.09 |
영속성 컨텍스트 개념과 원리 (0) | 2022.04.04 |
엔티티와 테이블 매핑 (0) | 2022.04.04 |
연관관계 방향 설정하기 (0) | 2022.04.04 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday