Ignorar la propiedad al deserializar
Tengo una interfaz simple con getter y setter para una propiedad.
public interface HasMoney {
Money getMoney();
void setMoney(Money money);
}
Tengo otra clase UserAccount que implementa esta interfaz.
public class UserAccount implements HasMoney {
private Money money;
@Override
Money getMoney() // fill in the blanks
@Override
void setMoney(Money money) // fill in the blanks
}
Mi problema es que quiero serializar la propiedad de dinero pero ignorarla al deserializarla, es decir, no aceptar ningún valor del usuario para esta propiedad. He intentado @JsonIgnore en el configurador y @JsonIgnore (falso) en el getter, lo ignora pero lo hace mientras lo serializa también.
Intenté @JsonIgnore en el setter y @JsonProperty en el getter simplemente para decirle a Jackson que intentamos rastrear esta propiedad, que parece bloquear la aplicación cuando se envía la propiedad money al servidor y Jackson intenta deserializarla lanzando MalformedJsonException: no se puede construir objeto de tipo dinero.
Lo más extraño es que poner @JsonIgnore en el setter y @JsonProperty en el setter funciona en la mayoría de los casos cuando la propiedad es primitiva.