2014-06-28 13 views
11

Posso usare @JsonIgnore con l'annotazione @Getter da lombok senza definire esplicitamente il getter, perché devo usare questo JsonIgnore mentre serializzo l'oggetto ma mentre deserializzi, l'annotazione JsonIgnore deve essere ignorata in modo che il campo nel mio oggetto non deve essere un null.@JsonIgnore con @getter Annotation

@Getter 
@Setter 
public class User { 

    private userName; 

    @JsonIgnore 
    private password; 
} 

Lo so, semplicemente definire il JsonIgnore sul getter di la password posso evitare che la password da serializzare ma per questo devo definire esplicitamente la cosa getter che non voglio. Qualsiasi idea per favore, ogni aiuto sarà apprezzato.

+0

Sì, è possibile utilizzarlo – Vihar

+0

ma come?, Utilizzando jsonIgnore con @getter l'oggetto non verrà deserializzato? –

risposta

25

Per inserire @JsonIgnore nel metodo getter generato, è possibile utilizzare onMethod = @__ (@JsonIgnore). Questo genererà il getter con l'annotazione specifica. Per maggiori dettagli si veda http://projectlombok.org/features/GetterSetter.html

@Getter 
@Setter 
public class User { 

    private userName; 

    @Getter(onMethod = @__(@JsonIgnore)) 
    @Setter 
    private password; 
} 
0

Questo potrebbe essere abbastanza ovvio, ma ho perso un sacco di tempo non pensare questa soluzione prima:

@Getter 
@Setter 
public class User { 

    private userName; 

    @Setter 
    private password; 

    @JsonIgnore 
    public getPassword() { return password; } 
} 

Come Sebastian detto @__(@JsonIgnore) può risolvere questo problema, ma a volte l'uso della funzione onX Lombok (@__()) può avere effetti collaterali per esempio interrompere la generazione di javadoc.

Problemi correlati