J'ai une classe de fréquence qui prend un type de propriété qui indique au désérialiseur quelle sous-classe doit être résolue pendant l'exécution.Comment obtenir la propriété définie dans @JsonTypeInfo dans le code java pour la classe polymorphe lors de la désérialisation?
@JsonTypeInfo(use = Id.NAME,
include = JsonTypeInfo.As.PROPERTY,
property = "type")
@JsonSubTypes({
@Type(value = FrequencyIncidence.class, name= "INCIDENCE"),
@Type(value = FrequencyRange.class, name="RANGE"),
})
public abstract class Frequency extends Audit {
private FrequencyType frequencyType;
public FrequencyType getFrequencyType() {
return frequencyType;
}
public void setFrequencyType(FrequencyType frequencyType) {
this.frequencyType = frequencyType;
}
Est-il possible que je peux accéder au type de propriété dans mon code java, donc je ne dois pas définir un autre frequencyType de champ dans ma classe java? En ce moment j'ai besoin du champ frequencyType pour déterminer la sous-classe dans le code java et remplir les données dans la base de données dans la classe de service java. Le json pour ma fréquence ressemble à ceci.
{ "fréquence": { "type": "INCIDENCE" "frequencyType": "INCIDENCE"}} Type
est utilisé pour fournir des informations de métadonnées pour json désérialiseur et frequencyType est utilisé pour déterminer quelles informations de sous-classe nous envoyons. Peut-on le condenser en une seule propriété au lieu de deux?