인프런 커뮤니티 질문&답변

박민식님의 프로필 이미지

작성한 질문수

스프링 부트 개념과 활용

스프링 데이터 6부: 스프링 데이터 JPA 연동

h2 사용시 테이블을 생성하지 않아도 되는 이유

작성

·

231

0

안녕하세요 강의를 잘 수강하고 있습니다.

JPA를 h2와 연동해 사용할 경우 엔티티와 매핑될 테이블을 직접 생성해 주지 않아도 되는데에 반해, 일반 RDBMS와 연동해 사용할 때에는 테이블을 직접 생성해 줘야 하는 것으로 알고 있습니다.

후자의 경우야 너무나 당연한 내용이라고 생각이 들지만, 어떻게 h2에서는 테이블을 직접 생성해주지 않아도 되는 것인지 궁금합니다.

또 이와 비슷한 원리로 RDBMS에서도 테이블을 자동으로 생성될 수 있도록 설정하는 방법이 있을까요?

답변 2

1

백기선님의 프로필 이미지
백기선
지식공유자

음~ h2 라서 테이블 생성을 안해주는게 아니라, 일반 DB도 자동으로 테이블이 생성되도록 설정할 수 있습니다. 그게 hbm2ddl 이라는 키워드로 검색해보시면 하이버네이트나 JPA 관련 기능에 대해 알 수 있을텐데요. DB 마다 달라지는게 아니에요. 제가 만든 스프링 데이터 JPA 강좌 보시면 해당 수업이 있습니다.

그리고 어쩌면 질문이 "테이블"이 아니라 "데이터베이스"가 아닌가 의심 되는데요. RDBMS 연결할 때 최소로 필요한건 접속할 데이터베이스입니다. H2를 인메모리 DB로 사용하는 경우 별다른 설정이 없으면 testdb라는 이름의 DB를 사용하게 됩니다. 그건 H2의 기능이 맞아요. 혹시나 햇갈리셨을까봐 이 경우에 대해서도 언급했습니다.

감사합니다.

0

박민식님의 프로필 이미지
박민식
질문자

빠른답변 감사합니다. JPA강의는 언젠가 꼭 수강해야지 생각하고 있었는데 완강하고 꼭 수강해 보아야 겠네요 ㅎㅎ