도메인 지식 같은 경우 -> Domain(Entity)에 유효성 검사를 해야한다.
도메인 지식과 무관하게 데이터 그 자체가 유효한가에 대한 검사 -> DTO에서 해야한다.
@Getter
@Setter
@Entity
public class Food {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;// 고유 번호
@Column(length = 50)
@Size(max = 50)
private String foodname; // 식품명
@Column(length = 30)
@Size(max = 30)
private String kind; // 종류
private List<String> createDate;//날짜
private String storageArea; // 구역
private LocalDateTime modifyDate; // 최종 수정 날짜
@ManyToOne// 작성자와의 관계 설정
private SiteUser siteuser;
private String imagePath; //이미지 경로
}
@Size를 추가하여 유효성 검사를 추가했다.
@Getter
@Setter
@Entity
public class FoodFormDto {
@NotEmpty(message="식품 이름은 필수 항목입니다.")
@NotNull
private String foodName;
@NotEmpty(message="식품 종류 선택은 필수 항목입니다.")
@NotNull
private String kind;
@NotEmpty(message="유통기한은 필수 항목입니다.")
@NotNull
private List<String> createDate;//날짜
@NotEmpty(message="영역은 필수 항목입니다.")
@NotNull
private String storageArea;
입력 폼에 대한 @NotEmpty @NotNull을 이용하여 유효성 검사를 추가했다.