🏷 @ColumnDefault

정의

@ColumnDefaultHibernate에서 제공하는 애너테이션으로, 특정 컬럼의 기본값을 지정할 때 사용된다.

JPA 표준은 아니며, Hibernate 환경에서 기본값을 명시하고 싶을 때 사용한다.

🧩 주요 특징

  • Hibernate 전용 애너테이션이다
  • 컬럼의 기본값을 코드에서 명시할 수 있다
  • SQL DEFAULT와 비슷한 역할을 한다
  • 기본값으로 NULL이 들어가는 것을 방지하는 데 도움이 된다

🛠 사용법

@ColumnDefault 적용 예시

import org.hibernate.annotations.ColumnDefault;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Entity
public class User {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @ColumnDefault("'ACTIVE'")
    @Column(nullable = false)
    private String status;
}

SQL 기본값 설정과 비교

방법 설명 적용 대상
@ColumnDefault Hibernate 애너테이션으로 기본값을 지정한다. JPA 엔티티
DEFAULT DB 스키마에서 기본값을 설정한다. 데이터베이스 테이블

⚠️ 장점과 단점

장점

  • 기본값을 코드에서 명시적으로 관리할 수 있다
  • 엔티티 수준에서 기본값을 파악하기 쉽다

단점

  • JPA 표준이 아니라 Hibernate에 종속적이다
  • DBMS나 적용 방식에 따라 기대한 대로 반영되지 않을 수 있다

📌 정리

  • @ColumnDefault는 컬럼 기본값을 지정하는 Hibernate 애너테이션이다.
  • JPA 표준이 아니므로 사용 환경을 확인해야 한다.
  • DB 기본값과 함께 어떤 방식으로 관리할지 함께 생각하는 것이 좋다.

연결문서

댓글남기기