자바에서는 깔끔하게 롬복을 이용해주었습니다. DTO또한 클래스로 만들어도 상관 없지만 저는 record를 이용했습니다. 자바 버전을 낮은 걸로 하시면 record가 작동하지 않을 수 있으니 없다면 class로 하셔도 무방합니다.
Memo
@Entity @Getter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class Memo {
@Id @GeneratedValue
@Column(name = "memo_id")
private Long id;
@NotNull @Setter
private String title;
@NotNull @Setter
private String content;
@NotNull
private final LocalDateTime createDate = LocalDateTime.now();
private Memo(String title, String content) {
this.title = title;
this.content = content;
}
//생성 로직
public static Memo createMemo(String title, String content) {
return new Memo(title, content);
}
}
MemoDTO
public record MemoDTO(String title, String content) {
}