Можно игнорировать @XmlJavaTypeAdapter при сохранении в БД - PullRequest
0 голосов
/ 21 февраля 2020

У меня есть один проект, который читает xml и сохраняет в БД? но дата поля в xml передается в формате 'гггг-ММ-дд' и для сохранения в моей БД мне нужно сохранить в формате anoter 'дд / мм / гггг'

, поэтому мне нужно создайте один XmlAdapter для анализа из String в localDate

public class LocalDateAdapter extends XmlAdapter<String, LocalDate> {
    public LocalDate unmarshal(String v) throws Exception {
        if(Strings.isNullOrEmpty(v))
            return null;
        return LocalDate.parse(v);
    }

    public String marshal(LocalDate v) throws Exception {
        if(v == null)
            return null;
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy");
        return v.format(formatter);
    }
}

, поэтому я вставил свою сущность

@XmlElement(name = "DATAINSTRUMENTO", required = true)
@XmlJavaTypeAdapter(value = LocalDateAdapter.class)
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd/MM/yyyy")
@JsonSerialize(using = LocalDateSerializer.class)
@JsonDeserialize(using = LocalDateDeserializer.class)
protected LocalDate dataInstrumento;

Но теперь я получил ошибку, когда он попытался сохранить в моей БД, я получил ошибку

Caused by: java.lang.IllegalArgumentException: The given Json object value: 'MyObject' cannot be transformed to a String

Так что можно игнорировать @XmlJavaTypeAdapter (value = LocalDateAdapter.class) при сохранении в БД?

ткс

...