강의

멘토링

커뮤니티

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

김동현님의 프로필 이미지
김동현

작성한 질문수

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

38강. profile과 H2 DB

h2 console 접속했을 테이블 질문

작성

·

16

1

ddl-auto: create로 설정되어 있어서 자동으로 테이블이 생성되게 되어 있다는 말은 이해가 되는데요.

 

BOOK, USER, USER_LOAN_HISTORY의 테이블 컬럼명과 컬럼의 특성등은 따로 어디에 명시해둬야 참고를 해서라도 만들지 않나요?

 

mysql에서 만들때는 저희가 직접 console창에서 직접 설정해서 create해줬는데, 해당 테이블 구조는 테이블이 생성될때 무엇을 참고해서 만들고 있는건지 문의 드립니다.

 

감사합니다.

답변 1

1

최태현님의 프로필 이미지
최태현
지식공유자

안녕하세요 동현님~! 아주 아주 좋은 질문 감사합니다.

결론부터 말씀드리면 저희가 @Entity 라고 어노테이션을 붙인 클래스를 보고

 

리플렉션이란 기술을 활용해서

  • 클래스 이름

  • 클래스 안에 선언된 필드 목록 (이름과 타입)

을 가져와 테이블을 만들어 주게 됩니다.

 

만약 @Column 으로 선언한 내용이 있으면 해당 설정을 우선적으로 따르게 됩니다. 예를 들어 단순 private final String name 이 있으면 varchar(255) name이 생기는데 @Column(length = 20) 을 붙이면 varchar(20) name 이 생기는 느낌입니다.

답변이 도움이 되었으면 좋겠습니다. 감사합니다. 🙇

김동현님의 프로필 이미지
김동현

작성한 질문수

질문하기