본문 바로가기

백엔드

[Spring Boot] entity 생성 시 @Column 어노테이션을 생략한다면?

728x90

entity 생성 시 @Column 어노테이션을 생략할 경우

entity 내 객체 필드를 테이블 컬럼에 매핑하기 위해 @Column 어노테이션을 활용하는데, 이는 생략할 수 있다. 생략하면 기본값이 적용되어 @Column의 속성 중 nullable이 true로 설정된다.

 

int 와 같은 자바 기본 타입은 null 값을 입력할 수 없다. Integer와 같은 객체 타입일 때만 null 값이 허용된다. 이때문에 @Column 어노테이션을 생략하면 null값이 true로 설정되므로 오류가 발생할 위험이 있다.

따라서 자바 기본 타입에는 @Column 어노테이션을 붙여 nullable=false로 설정하는 것이 좋다.

// 엔티티 필드 예시

// X
private int price; // price = null로 설정되면 오류 발생

// O
@Column (nullable=false)
private int price;

 

자바 기본 타입 : int, double, boolean 등

자바 참조 타입 : Integer, Double, Boolean, 배열, enum, 문자열, 클래스, 인터페이스

 

참고

https://velog.io/@cutehuman/JPA-%ED%95%84%EB%93%9C%EC%99%80-%EC%BB%AC%EB%9F%BC-%EB%A7%A4%ED%95%91-%EC%8B%9C-Column-%EC%83%9D%EB%9E%B5%ED%95%98%EB%8A%94-%EA%B2%BD%EC%9A%B0

반응형