• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

ddl 속성 질문

21.07.22 11:25 작성 조회수 248

0

안녕하세요. ddl 속성 통해서 스키마 자동 생성하는 부분에서 이해가 안되는 부분이 있어서 질문드립니다.

이전 강의까지의 예제에서 ddl 설정값을 주석처리했는데도 h2 콘솔상에서 member 테이블이 생성되고 데이터가 삽입된 것을 확인했습니다.

ddl-auto 속성값을 none 또는 주석처리해도 @Entity 애노테이션을 기준으로 알아서 테이블을 만들어주는 건가요? 만약 그렇다면, 운영서버에서 자동 생성을 사용하지 말아야한다고 하셨는데 @Entity 애노테이션을 통해 자동으로 테이블이 생성되는 것을 어떻게 막을 수 있나요??

답변 2

·

답변을 작성해보세요.

0

민규님의 프로필

민규

2021.07.31

삭제된 글입니다
David님의 프로필

David

2021.07.31

확인 감사합니다.

핵심은 이전에 테이블을 생성했었고 해당 테이블이 남아있어서 발생한 문제입니다.

0

David님의 프로필

David

2021.07.22

안녕하세요. dongju님, 공식 서포터즈 David입니다.
.

H2를 Memory가 아닌 Local에서 설치된 것을 사용중이신가요?

만약 그렇다면 ddl-auto:create 때 생성되었던 테이블이 남아있을 수 있습니다.

프로젝트 실행 전 모든 테이블을 삭제한 뒤 다시 시도해보시겠어요?

H2를 Memory에 올라가 있다면 실행 종료시 메모리에 올라가 있던 테이블이 날아갑니다. 그러나 로컬에 설치된 H2라면 생성한 테이블들이 프로그램 종료시 삭제되진 않습니다.

.
감사합니다.

dongju님의 프로필

dongju

질문자

2021.07.22

@Entity 애노테이션이 있어도 ddl 속성이 안켜져있으면 테이블 생성이 안되는게 정상이라는 말씀이신건가요?? 메모리로 실행한건지 뭐로 실행한건지 잘 모르겠습니다..ㅠ h2 사이트에서 콘솔 다운받아서 콘솔 실행하고 메모리가 아닌 tcp 로컬 연결한것 같습니다.

dongju님의 프로필

dongju

질문자

2021.07.22

David님의 프로필

David

2021.07.22

ddl-auto가 none이면 테이블 생성 안되는게 맞습니다.

메모리가 아니라면 제가 위에 말씀드린대로 ddl-audo:create일 때 생성된 테이블이 남아있어서 ddl-auto:none으로 재실행해도 테이블이 그대로 보여지는 것 같습니다.

dongju님의 프로필

dongju

질문자

2021.07.22

감사합니다!!