ORM은 객체와 RDB의 테이블을 자동으로 매핑하는 기술이다.
JPA에서는 Java 클래스를 Entity로 지정하여 해당 Entity 클래스와 DB의 테이블을 매핑한다.
엔티티 클래스 @Entity
@Entity가 붙은 클래스는 JPA가 관리하고, 이를 엔티티라 한다.
JPA를 사용해서 테이블과 매핑할 클래스는 @Entity 어노테이션을 붙여줘야 한다.
@Entity
public class Member{
@Id
Long id;
String name;
public Member(){}
}
@Id로 Primary Key를 필수로 설정해줘야 하고, 기본 생성자가 필수로 존재해야 한다.
@Entity 어노테이션의 속성으로 name을 추가할 수 있다.
이 속성을 추가하면, 실제 엔티티 클래스와 DB의 엔티티 이름을 다르게 설정할 수 있다.
예를 들면 아래와 같이 엔티티 클래스 명은 MemberEntity, 테이블 명은 MEMBER로 설정할 수 있다.
@Entity("MEMBER")
public class MemberEntity{
}
데이터베이스 스키마 자동 생성
테이블 생성 DDL을 애플리케이션 실행 시점에 자동으로 생성하는 기능이다.
개발 시에 테이블 중심이 아닌 객체 중심 개발이 가능하다.
스키마 자동 생성 기능에는 여러 가지 옵션이 있고, 이 중 상황에 따라 선택해서 사용하면 된다.
spring.jpa.hibernate.ddl-auto: {option}
Options
- create : 기존 테이블 삭제 후 다시 생성한다. (drop table -> create table)
- create-drop : create와 같지만, 종료 시점에 테이블을 drop 한다.
- update : 변경된 부분만 반영한다. (기존의 테이블에 alter table 하여 변경)
- validate : 엔티티와 테이블이 정상 매핑 되었는지만 확인한다.
- none : 해당 기능 사용하지 않음.
create, create-drop, update는 테이블을 drop 하고, 테이블의 직접적인 변경이 이루어지는 만큼,
운영 서버에서는 절대 사용하면 안 된다.
개발 초기에는 create 또는 update,
테스트 서버는 update 또는 validate,
운영 서버는 validate 또는 none을 사용하는 것이 좋다고 한다.
엔티티 매핑 관련 상세 속성 알아보기
기본 키 매핑
2023.10.04 - [Spring/JPA] - [JPA] @Entity - 기본 키 매핑
필드와 컬럼 매핑
2023.10.04 - [Spring/JPA] - [JPA] @Entity - 필드와 컬럼 매핑의 여러가지 속성
(참고) 인프런 - 김영한 님 '자바 ORM 표준 JPA 프로그래밍 - 기본 편'
https://www.inflearn.com/course/ORM-JPA-Basic
'Database > JPA' 카테고리의 다른 글
[JPA] 연관관계 매핑 - @ManyToOne, @OneToMany (0) | 2023.10.06 |
---|---|
[JPA] @Entity - 필드와 컬럼 매핑의 여러가지 속성 (1) | 2023.10.04 |
[JPA] @Entity - 기본 키 매핑 (1) | 2023.10.04 |
[JPA] ORM, JPA, Hibernate, Spring Data JPA의 관계 (0) | 2023.10.03 |
[JPA] 영속성 컨텍스트의 주요 개념 / Spring Data JPA에서의 영속성 (1) | 2023.10.02 |