Spring | jpa 유효성검증

춤인형의 개발일지·2025년 1월 16일

Spring

목록 보기
5/8

Entity

@Column, @JoinColumn

엔티티의 필드에 사용하는 annotation
조건을 걸어주는 역할이다.
@JoinColumn은 ManyToOne이 있는 곳에 붙여준다.

자주 사용하는 옵션

  • unique : 중복 방지(unique = true)
  • nullable : null이 저장 방지(nullable = false)
  • name : DB 테이블 컬럼의 이름을 수동으로 지정하고 싶을 때 사용
  • updatable : 변경 감지(Dirty Checking)에서 제외하고 싶은 필드에 updatable = false 사용. 주로 @CreatedDate와 함께 사용함.
@Entity
public class Comment extends BaseEntity {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @Column(nullable = false)
    private String content;

    @Column(nullable = false)
    private String writer;

    @ManyToOne
    @JoinColumn(nullable = false)
    private Post post;

validate

  • @NotNull : null 허용하지 않음. but, Empty String은 허용함 ("", " ")

  • @NotEmpty : null, ""을 허용하지 않음(" "는 허용)

  • @NotBlank : null, "", " " 모두 허용하지 않음

  • @Email : 이메일 형식을 검사 but, ""의 경우를 통과

  • @Pattern(regexp = ) : 정규식 검사

  • @Size(min=, max=):길이를 제한

  • @Positive : 값을 양수로 제한.

  • @PositiveOrZero : 값을 양수와 0만 가능하도록 제한.

  • @Negative : 값을 음수로 제한.

  • @NegativeOrZero : 값을 음수와 0만 가능하도록 제한.

  • @Future : 현재보다 미래.

  • @Past : 현재보다 과거.

  • @AssertFalse : false 여부, null은 체크 X.

  • @AssertTrue : true 여부, null은 체크 X

이 어노테이션은 보통 request에 사용한다. 이걸 진짜 검증하기 위해서는 controller에 @Valid을 달아주면 검증된다.

0개의 댓글