Код: Выделить всё
@Schema(
discriminatorMapping = {
@DiscriminatorMapping(value = "type1", schema = Type1.class),
@DiscriminatorMapping(value = "type2", schema = Type2.class),
@DiscriminatorMapping(value = "type3", schema = Type3.class),
},
discriminatorProperty = "type",
oneOf = {Type1.class,
Type2.class,
Type3.class
}
)
public interface MainInterface {
@Schema(
requiredMode = Schema.RequiredMode.REQUIRED,
example = "type1"
)
Type getType();
}
< /code>
Есть свойства, которые используются по этим типам дочерних интерфейсов. Таким образом, мы хотим добавить общие Getters в MainInterface
Код: Выделить всё
public interface SharedProperties {
String getName();
String getDescription();
}
Генератор в настоящее время генерирует основной интерфейс как < /p>
Код: Выделить всё
@JsonIgnoreProperties(
value = {"type"},
allowSetters = true
)
@JsonTypeInfo(
use = Id.NAME,
include = As.PROPERTY,
property = "type",
visible = true
)
@JsonSubTypes({@Type(
value = Type1.class,
name = "type1"
), @Type(
value = Type2.class,
name = "type2"
), @Type(
value = Type3.class,
name = "type3"
)})
public interface MainInterface {
Type getType();
}
< P> Мы также попытались добавить методы непосредственно в MainInterface , но генератор игнорирует их.
Подробнее здесь: https://stackoverflow.com/questions/794 ... e-for-open