РН
@Data
@NoArgsConstructor
public class EmployeeTimeReportDto implements Serializable {
private Long timeReportId;
private LocalDate date;
private LocalTime start;
private LocalTime end;
private HoursAndMinutesDto totalHours;
private TimeReportStatusEnum status;
private boolean isApproved;
/*@builder e.t.c.*/
}
Но в конечной JSON-ине я получаю поле "approved" вместо "isApproved". Попробовал модифицировать геттер, чтобы джексон его увидел и поменял название поля при сериализации, добавя в дтошку следующее:
@Getter(AccessLevel.NONE)
private boolean isApproved;
@JsonProperty("isApproved")
public boolean isApproved(){
return this.isApproved;
}
но привязанность "approved" у джексона никуда не делась, появилось при этом конечно поле ещё и "isApproved", но произошло исключение:
com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "approved" (class ee.h2h.h2hwebserver.controller.dto.response.job.EmployeeTimeReportDto), not marked as ignorable (7 known properties: "isApproved", "start", "end", "timeReportId", "date", "status", "totalHours"])
at [Source: (String)"[{"timeReportId":2854,"date":[2019,5,15],"start":[8,0],"end":[17,0],"totalHours":{"hours":9,"minutes":0},"status":"AUTOMATICALLY_GENERATED","approved":false,"isApproved":false},{"timeReportId":2855,"date":[2019,5,16],"start":[8,0],"end":[17,0],"totalHours":{"hours":9,"minutes":0},"status":"AUTOMATICALLY_GENERATED","approved":false,"isApproved":false})
или сделай вместо boolean объектную обёртку