728x90
DDL ( Data Definition Language ) : 데이터 정의어
- 데이터를 생성하거나 수정, 삭제 등 데이터의 전체 골격을 결정한다
- JPA 를 사용 및 @Entity를 붙여주면 DDL을 애플리케이션 실행 시점에 자동으로 생성한다.
@Entity
public class Member {
@Id
private Long id;
@Column(name = "name")
private String username;
private Integer age;
@Enumerated(EnumType.STRING)
private RoleType roleType;
@Temporal(TemporalType.TIMESTAMP)
private Date createdDate;
@Temporal(TemporalType.TIMESTAMP)
private Date lastModifiedDate;
@Lob
private String description;
- 테이블 중심에서 객체 중심으로 이동한다고 볼 수 있다.
- 생성한 DDL 은 개발 장비에서만 사용하고, 운영서버에서는 다듬어 사용한다.
- 데이터베이스 방언을 활용해서 DB 에 맞는 적절한 DDL을 생성한다.
ex ) MySQL -> varchar / Oracle -> varchar2
데이터 베이스 스키마 자동 생성 - 속성
해당 속성은 yml 또는 xml, properties 에서 변경할 수 있다.
옵션 | 설명 |
create | 기존테이블 삭제 후 다시 생성 (drop + create) |
create-drop | create 와 같으나 종료시점에 테이블 drop |
update | 변경분만 반영(운영 DB에서는 사용 X) |
validate | 엔티티와 테이블이 정상 매핑되었는지만 확인 |
none | 해당 기능을 사용하지 않음 |
주의점
- 운영 장비에는 절대 create , create-drop, update 를 사용해서는 안된다.
- 개발 초기 단계는 create 또는 update
- 테스트 서버는 update 또는 validate
- 스테이징, 운영서버에서는 validate 또는 none
참고
https://www.inflearn.com/course/ORM-JPA-Basic/dashboard
https://cbw1030.tistory.com/71
728x90
'Spring > JPA' 카테고리의 다른 글
연관 관계가 필요한 이유 (0) | 2022.09.21 |
---|---|
필드와 컬럼 매핑 (0) | 2022.09.20 |
객체와 테이블 매핑 (0) | 2022.09.20 |
영속성 컨텍스트 - 플러시 (0) | 2022.09.20 |
영속성 컨텍스트 - 변경 감지 (0) | 2022.09.20 |
댓글