Я пытаюсь десериализовать объект JSON, хранящийся в CouchDb, используя Jackson. Этот объект должен десериализоваться в pojo, который содержит перегруженные методы. Когда я пытаюсь извлечь объект из кушетки и выполнить десериализацию, я получаю следующее исключение:
org.ektorp.DbAccessException: org.codehaus.jackson.map.JsonMappingException: Конфликтные определения сеттера для свойство "множитель": com.db.commodities.framework.sdos.model.security.EqOpt # setMultiplier (1 params) против com.db.commodities.framework.sdos.model.security.EqOpt # setMultiplier (1 PARAMS)
Я попытался аннотировать установщик, который хотел бы использовать Джексон, но похоже, что он не сработал.
@JsonProperty("multiplier")
public void setMultiplier(SDOSAttribute multiplier) {
this.multiplier = multiplier;
}
public void setMultiplier(double multiplier) {
this.multiplier.setValue(String.valueOf(multiplier));
}
Как настроить Jackson для правильной десериализации с использованием определенного метода? Или я неправильно подхожу к этой проблеме?
EDIT:
Я внес следующие изменения. Кажется, это работает, но немного уродливее. Если у кого-то есть лучший способ сделать это, не стесняйтесь делиться, и я с радостью соглашусь.
@JsonProperty("multiplier")
protected void setMultiplierAttribute(SDOSAttribute multiplier) {
this.multiplier = multiplier;
}
@JsonIgnore
public void setMultiplier(double multiplier) {
this.multiplier.setValue(String.valueOf(multiplier));
}