jpa 공부 - 1일차
어노테이션들
- 객체와 테이블 매핑: @Entity, @Table
- 기본 키 매핑: @Id
- 필드와 컬럼 매핑: @Column
- 연관관계 매핑: @ManyToOne, @JoinColumn
데이터베이스 스키마 자동 생성
데이터베이스 스키마 자동 생성
클래스의 매핑 정보를 보면 어떤 테이블에 어떤 컬럼을 사용하는 지 알 수 있어서 JPA는 이 매핑 정보를 통해 데이터베이스 방언을 사용해서 데이터베이스 스키마를 생성한다.(설정에서 AUTO기능 추가해줘야된다?)
DDL 보면 기존 테이블을 삭제하고 다시 생성한 것을 확인할 수 있음
기본 키 매핑
직접 할당
기본 키를 애플리케이션에서 직접 할당한다.
예를 들어 em.persist() 로 엔티티를 저장하기 전에 애플리케이션에서 기본 키를 직접 할당하는 방법이다.
자동 생성
IDENTITY
기본 키 생성을 데이터베이스에 위임하는 전략
@ID
@GeneratedValue(startegy = GenerationType.IDENTITY)
private Long id;
주의
엔티티가 영속 상태가 되려면 식별자가 반드시 필요하다.
그런데 IDENTITY 식별자 생성 전략은 엔티티를 데이터베이스에 저장해야 식별자를 구할 수 있으므로 em.persist()를 호출하는 즉시 INSERT SQL이 데이터베이스에 전달됨. 따라서 이 전략은 트랜잭션을 지원하는 쓰기 지연이 동작하지않음!
SEQUENCE
IDENTITY 전략과 같지만 내부 동작 방식은 다름
시퀀스 생성기가 ID를 생성해주기 때문!
TABLE
키 생성 전용 테이블을 하나 만들고 여기에 이름과 값으로 사용할 컬럼을 만들어 데이터베이스 시퀀스를 흉내내는 전략임
자연 키보다는 대리키를 권장한다
Author And Source
이 문제에 관하여(jpa 공부 - 1일차), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@lsvk9921/jpa-공부-1일차
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Author And Source
이 문제에 관하여(jpa 공부 - 1일차), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@lsvk9921/jpa-공부-1일차저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)