본문 바로가기
Spring/JPA

데이터베이스 스키마 자동 생성

by YoonJong 2022. 9. 20.
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;

콘솔창에서 확인
H2 DB 에서 확인

- 테이블 중심에서 객체 중심으로 이동한다고 볼 수 있다.

 

- 생성한 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

 

자바 ORM 표준 JPA 프로그래밍 - 기본편 - 인프런 | 강의

JPA를 처음 접하거나, 실무에서 JPA를 사용하지만 기본 이론이 부족하신 분들이 JPA의 기본 이론을 탄탄하게 학습해서 초보자도 실무에서 자신있게 JPA를 사용할 수 있습니다., - 강의 소개 | 인프런

www.inflearn.com

https://cbw1030.tistory.com/71

 

[데이터베이스] DML, DDL, DCL이란?

데이터베이스에서는 모든 작업을 SQL문을 이용해 작업한다. SQL문은 다루는 객체나 용도에 따라 그룹핑하여 나눌 수 있다. 종류로는 DDL, DML, DCL이 있다. [ DDL (Data Definition Language) ] - 데이터 정의어.

cbw1030.tistory.com

 

728x90

'Spring > JPA' 카테고리의 다른 글

연관 관계가 필요한 이유  (0) 2022.09.21
필드와 컬럼 매핑  (0) 2022.09.20
객체와 테이블 매핑  (0) 2022.09.20
영속성 컨텍스트 - 플러시  (0) 2022.09.20
영속성 컨텍스트 - 변경 감지  (0) 2022.09.20

댓글