@ColumnDefault
🏷 @ColumnDefault
정의
@ColumnDefault는 Hibernate에서 제공하는 애너테이션으로, 특정 컬럼의 기본값을 지정할 때 사용된다.
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 기본값과 함께 어떤 방식으로 관리할지 함께 생각하는 것이 좋다.
댓글남기기