1

以下のようなクラス階層があります

public class Car {
     private String make; 
     private String model; 
     
     @Schema(example = "MANUAL")
     private TransmissionType transmissionType;

     @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.EXTERNAL_PROPERTY, 
          property = "transmissionType")
     private Transmission transmission; 
}

@JsonSubTypes({
        @JsonSubTypes.Type(value = AutomaticTransmission.class, name = "AUTOMATIC"),
        @JsonSubTypes.Type(value = ManualTransmission.class, name = "MANUAL"))
})
public abstract class Transmission {
}

public class AutomaticTransmission {
     @Schema(example = "DCT")
     public Technology technology;
}

public class ManualTransmission {
     @Schema(example = "5")
     public int numGears; 
}

さて、闊歩が生成されると、車のモデルについては、

{
   "transmissionType": "MANUAL"
   "transmission": {  
       "technology": "DCT"
   }
}

ここではトランスミッションのタイプはマニュアルですが、オートマチックの例を示します。要件はマニュアル トランスミッションの例です。これら 2 つのプロパティをリンクするにはどうすればよいですか。

サンプルjsonを作成して入れることができることはわかっています@Schema(example = "{\"numGears\": 5}")が、これにより、クラスが変更されたときにjsonを変更するためのメンテナンスオーバーヘッドが発生します。

4

0 に答える 0