@Size
- Java Bean Validation 어노테이션
- 필드 크기가 min과 max 사이여야 값을 저장할 수 있도록 유효성 검사를 해줌
- JPA나 Hibernate로부터 독립적인 bean을 만들어줌
public class User {
@Size(min = 4, max = 10)
private String username; // 4 ~ 10 범위 밖의 크기 값이 들어오면 Exception 발생
}
@Length
- Hibernate 어노테이션
- min과 max를 이용하여 필드 값 크기에 대한 유효성 검사
public class User {
@Length(min = 4, max = 10)
private String username;
}
@Column(length = value)
- JPA에서 제공하는 어노테이션
- JPA가 @Entity가 붙은 클래스를 DB테이블로 생성할 때, @Column의 length 속성을 사용하여 컬럼 문자열의 길이를 정한다.
- DDL을 컨트롤하기 위해 사용된다.
- length 보다 긴 문자열을 넣으려고 하면 SQL error 발생
- 유효성 검사를 해주는 것이 아니라 테이블 컬럼의 길이 속성만 지정해주는 것
- String 필드 경우에만 적용되며, length 값을 지정해주지 않는다면 기본값으로 varchar(255) 크기로 생성됨
@Entity
public class User {
@Column(length = 20)
private String password;
}
💡 @Size 를 사용할 경우 장점!
1. @Column 의 예시와 같이 DDL statement가 동일하게 varchar(20) 이 된다.
2. Hibernate의 validation bean이 persist, update 전에 자동으로 @Size에 해당하는 값에 맞게 데이터가 할당되었는지 검증한다.
3. @Length 보다 @Size가 더 가볍다고 한다
'Backend > Spring' 카테고리의 다른 글
[Spring Security] Spring Security 정리 (0) | 2024.01.21 |
---|---|
[Spring] @RequestParam과 @PathVariable 의 차이 (0) | 2024.01.18 |
[Spring Boot] JPA log 설정 (0) | 2023.12.30 |
[Spring] DAO, DTO, VO, Entity 개념 정리 (2) | 2023.12.29 |
[JPA / 강의] Entity mapping(엔티티 매핑) (0) | 2023.12.27 |