인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

hyun님의 프로필 이미지
hyun

작성한 질문수

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

24강. 유저 테이블에 대응되는 Entity Class 만들기

@Column 어노테이션 안써도 되는 경우 질문이요!

작성

·

129

·

수정됨

0

저희 학습내용으로 보면

private Integer age; 는 테이블의 age int,

와 같아서 어노테이션 안써도 된다고 하셨는데

그럼 name 같은경우도 테이블의

그냥 컬럼명과 타입 똑같은 조건인데

왜 어노테이션쓰고 nullable = false, length = 25라고 해야하나요??

그리고 한가지만 더 질문 드릴게요!

저는 서버 실행하면 콘솔쪽에 따로 쿼리가 안찍히던데 왜그럴까요?? 이상은 없는데 hibernate가 인식이 안되서 그런건지

콘솔에 쿼리가 안찍히네요ㅠㅠ

답변 1

0

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

안녕하세요! hun님! 🙂 좋은 질문 감사합니다.

 

name의 경우 @Column 을 지정해준 이유는, 질문에 적어주신 것처럼 nullable = false, length = 25 라는 옵션을 주기 위해서입니다!

만약 name 필드에 null이 들어가도 괜찮고, length가 기본값인 255이어도 괜찮다면, 굳이 @Column 을 적을 필요가 없습니다.

다시 말해, 객체의 필드 이름과 테이블 칼럼 이름이 다르다거나, @Column 을 통해 설정할 수 있는 옵션들 (length, nullabe, unique, updatable 등등..) 을 주고 싶다면, 그 때 @Column을 쓰시면 됩니다!

 

콘솔쪽에 쿼리가 찍히지 않는 것은 sql을 보여달라는 옵션이 제대로 설정되지 않았을 확률이 높습니다!

application.yml 쪽의 아래 두 옵션을 확인해보시면 좋을 것 같습니다.

spring:
 jpa:
  hibernate:
    properties:
      hibernate:
        format_sql: false
        show_sql: true

 

감사합니다! 🤲

hyun님의 프로필 이미지
hyun

작성한 질문수

질문하기