• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

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

24.06.14 16:41 작성 24.06.14 16:43 수정 조회수 62

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

 

감사합니다! 🤲

채널톡 아이콘