저지 (JaxRS 및 Jackson)를 사용 중입니다.저지 : 하나의 DTO에 대해 다른 JSON 필터
나는 학생 DTO가 있습니다.
class StudentDTO {
private Integer id;
private String name, className, grade;
private String createdAt, modifiedAt;
// getter, setter for all private members above
DTO를 만들고, 읽고, 업데이트 할 때 다시 사용하기를 원합니다.
그러나 생성시 name, className 및 grade 만 허용됩니다. 업데이트에는 className 및 등급 만 허용됩니다.
현재 솔루션은 작성, 업데이트 및 읽기 용의 세 가지 DTO 클래스를 사용하고 있습니다.
DTO 클래스를 하나만 사용하여이를 수행하는 방법은 무엇입니까?
원하는 필수 매개 변수를 사용하여 생성자를 오버로드 할 수 있습니다. – Coder
오버로드 생성자는 요청 매개 변수를 필터링하는 데 사용할 수 없습니다. Jackson은 개인이더라도 getter/setter/constructor가 아닌 클래스 멤버에 매핑됩니다. – Kuzunoha
필자는 개인적으로 3 DTO가 의미론면에서 더 우수하다고 생각합니다. 어떤 필드가 존재해야하는지 기억하지 않아도 API의 적절한 문서를 제공합니다. 내 두 센트;) 또한 그들을 불변으로 만들 수 있다면 ... –