Notice
Recent Posts
Recent Comments
Link
HwangHub
[JPA] @Column(length = value), @Size, @Length 간단요약 본문
문자열의 길이를 제한하는 어노테이션에 대해 알아보다가 쓱 보기엔 유사해보이는 어노테이션들이 있어서 한번 간단하게 정리해 보았다.
@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
'workspace > 아티클' 카테고리의 다른 글
[이슈] 게시글별 댓글 전체 조회시 대댓글 개수만큼 부모 댓글만 중복 조회됨 (0) | 2023.10.13 |
---|---|
[이슈] Field 'id' doesn't have a default value (0) | 2023.10.13 |
[리팩토링] post 엔티티 body 필드 TEXT 적용 (0) | 2023.10.13 |
[리팩토링] dto를 더욱 적극적으로 사용 (1) | 2023.10.13 |
[리팩토링] AuthenticatedUserUtils 사용하여 로그인 유저 Id를 추출 (0) | 2023.10.13 |
Comments