🏷 @Column

정의

@ColumnJPA에서 엔티티 필드와 데이터베이스 테이블 컬럼의 매핑을 정의하는 애너테이션이다.

필드명과 컬럼명이 다를 수 있기 때문에, 실제 저장될 컬럼의 속성을 명시적으로 관리할 때 자주 사용한다.

🧩 역할

  • 필드와 컬럼의 매핑을 정의한다.
  • 컬럼 이름과 제약 조건을 지정한다.
  • 길이, null 여부, 유일성, 업데이트 가능 여부 등을 설정한다.

⚙️ 주요 속성

속성 기능
name 컬럼명을 설정한다.
length 문자열 최대 길이를 설정한다.
nullable NULL 허용 여부를 설정한다.
precision 숫자 타입의 전체 자릿수를 지정한다.
scale 숫자 타입의 소수 자릿수를 지정한다.
columnDefinition 컬럼 타입을 직접 지정한다.
unique 컬럼 값의 유일성을 지정한다.
insertable INSERT 쿼리에 포함할지 여부를 지정한다.
updatable UPDATE 쿼리에 포함할지 여부를 지정한다.

🧪 사용 예시

// Float 타입의 최대 길이와 소수부 자리수를 지정
@Column(name = "AVG_CPU_USE_RATE", precision = 5, scale = 2)
private Float averageCpuUseRate;

// max 길이만 설정
@Column(name = "TASK_ORD_DT", length = 6, nullable = false)
private DateTime orderDateTime;

// Lob 타입 지정
@Lob
@Column(name = "QUE_DATA", columnDefinition = "CLOB")
private String queueData;

✅ 사용 시 주의점

  • ddl-auto=create|update 환경에서는 일부 제약 조건이 자동 반영될 수 있다.
  • 하지만 nullable, length 같은 값은 명시적으로 적어 두는 편이 더 안전하다.
  • 컬럼명과 필드명을 다르게 쓸 때 특히 유용하다.

📌 정리

  • @Column은 엔티티 필드와 DB 컬럼을 매핑하는 애너테이션이다.
  • 컬럼명과 제약 조건을 명확히 표현할 수 있다.
  • 실무에서는 기본값보다 명시적으로 속성을 적는 편이 안전하다.

연결문서

댓글남기기