1.Entity와 테이블 매핑
@Entity 가 붙은 클래스는 JPA가 관리 → 엔티티
주의 사항
- 기본 생성자 필수!
- final 클래스 사용 금지
- 필드에도 final 사용 금지
- setter 가능한 사용 금지
2.데이터베이스 스키마 자동 생성
- DDL을 어플리케이션 실행 시점에 자동 생성
- 이렇게 생성된 DDL은 개발 서버에서만 사용
- 생성된 DDL은 운영서버에서는 사용하지 않거나, 다듬은 후 사용
데이터베이스 스키마 자동 생성에 관한 속성
- create : 기존 테이블 삭제 후 다시 생성
- create-drop : create와 같으나 종료시점에 테이블 drop
- update: : 변경분만 반영(추가만 됨)
- validate : 엔티티와 테이블이 정상 매핑되었는지만 확인 → 맞지 않다면 에러 발생
- none : 사용하지 않음
✅ 운영DB에는 절대 create, create-drop, update 사용하면 안됨
- 개발 초기 단계는 create 또는 update
- 테스트 서버는 update 또는 validate
- 스테이징과 운영 서버는 validate 또는 none
3.필드에 붙는 어노테이션
@Column(name="member_id")
private Long id;
위처럼 필드명과 DB명이 다른 경우 name 속성을 통해 매핑 가능
@Column(unique = true, length = 10) 등으로 제약조건 생성 가능
@Temporal : 날짜 타입을 생성.매핑 할 때 사용,
@Lob : cLob, bLob 타입
@Transient : DB와 별개로 사용한다.
@Enumerated : enum 타입 필드 생성, 무조건 String 타입으로 써야함
@Column의 속성
- insertable, updatable : 등록 변경 가능 여부(기본값 true)
- nullable : not null 제약조건(기본값 true, null 허용)
* 해당 글은 김영한님의 자바 ORM 표준 JPA 프로그래밍 - 기본편 강의를 참조하여 작성하였습니다.
반응형
'JPA > JPA 기초' 카테고리의 다른 글
[JPA] 프록시 객체와 지연로딩 정리 (0) | 2023.08.27 |
---|---|
JPA 정리(3) - 연관관계, 양방향 매핑 (0) | 2023.07.17 |
JPA 정리(1) - 영속성 컨텍스트 (0) | 2023.07.17 |