HwangHub

[JPA] @Column(length = value), @Size, @Length 간단요약 본문

무엇을 합니다/기술이해

[JPA] @Column(length = value), @Size, @Length 간단요약

HwangJerry 2023. 10. 13. 15:19

문자열의 길이를 제한하는 어노테이션에 대해 알아보다가 쓱 보기엔 유사해보이는 어노테이션들이 있어서 한번 간단하게 정리해 보았다.

 

@Column(length=value)

DB 필드의 물리적인 글자수 제약조건을 거는 어노테이션이다. value에 적절한 값을 입력해두면 Jpa에 ddl을 수행할 때 DB 칼럼의 문자열 길이 제약조건을 걸어둔다.

 

@Size(min=val, max=val)

자바에서 기본적으로 validation을 지원하기 위해 제공하는 어노테이션이다. 이를 requestDto 등에 이용하여 입력되는 문자열의 validation을 처리할 수 있다.

 

@Length(min=val, max=val)

하이버네이트에서 지원하는 validation 어노테이션이다. 기능 자체는 @Size와 동일하다고 이해할 수 있다. 따라서 일반적으로 특정 라이브러리 등에 강하게 의존성을 갖는 것을 피하는 것이 좋으니, @Size를 사용하는 것이 더 권장된다고 할 수 있다.

 

결론

@Column(length = value)와 @Size, @Length는 근본적으로 그 사용 목적이 다르다. 각각 적절하게 사용하면 된다.

 

 

참고: https://www.baeldung.com/jpa-size-length-column-differences

Comments