У меня есть следующее свойство в файле application.properties:
spring.jackson.date-format=yyyy-MMM-dd
Есть определение объекта для сериализации:
public class InjuryDTO {
private Long id;
private String kindOfInjury;
private String muscle;
private String side;
private Integer outOfTraining;
private Date injuryDate;
private Long athleteId;
// getters and setters are omitted for brevity }
Это класс, из которого изначально создается объект InjuryDTO:
@Entity
@Table(name = "INJURY")
public class Injury {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "INJURY_ID")
private Long id;
@Column(name = "KIND_OF_INJURY")
private String kindOfInjury;
@Column(name = "MUSCLE")
private String muscle;
@Column(name = "SIDE")
private String side;
@Column(name = "OUT_OF_TRAINING")
private Integer outOfTraining;
@Temporal(value = TemporalType.DATE)
@Column(name = "INJURY_DATE")
private Date injuryDate;
@ManyToOne
@JoinColumn(name = "ATHLETE_ID")
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
private Athlete athlete;
// get,set-ters are removed for brevity
}
Итак, если происходит десериализация этого свойства JSON:
"injuryDate":"2018-Jun-02"
Джексон принимает эту строку и преобразует ее в соответствующий объект java.util.Date, но при сериализациипроисходит без комментированной @Temporal(value = TemporalType.DATE)
аннотации, после чего сервер возвращает следующее свойство JSON: "injuryDate":"2018-06-02"
.
Вопрос: : почему аннотация @Temporal влияет на фактическое представление свойства даты в JSON