У меня есть такая конфигурация на родительский класс:Джексон Polymorfic @JsonTypeInfo атрибут типа всегда нуль
@JsonTypeInfo(
use = JsonTypeInfo.Id.NAME,
include = JsonTypeInfo.As.EXISTING_PROPERTY,
property = "type",
visible = true
)
@JsonSubTypes({
@JsonSubTypes.Type(value = AnalysisViewer.class, name = "ANALYSIS"),
@JsonSubTypes.Type(value = CombinedAnalysisViewer.class, name = "COMBINED"),
@JsonSubTypes.Type(value = SingleSourceViewer.class, name = "SINGLESOURCE"),
@JsonSubTypes.Type(value = SingleSourceGroupViewer.class, name = "SINGLESOURCE_GROUP")
})
А класс имеет следующий type
атрибут, который мне нужно сохраняться в базе данных (с JPA).
public class Viewer {
...
@Column(name = "TP_VIEWER")
@Enumerated(EnumType.STRING)
private ViewerTypeEnum type;
...
}
С помощью этой конфигурации или изменений в visible=false
и include=JsonTypeInfo.As.PROPERTY
я либо получаю сообщение об ошибке на сериализации о том, что это не возможно, чтобы написать два раз то же свойство, или ошибку, говоря, что я не могу сохранить нулевое значение в колонке type
.
Что мне нужно - это иметь атрибут типа в базе данных И использовать его, чтобы научить Джексона подтипам. Я пробовал много разных конфигураций, и я не могу найти документацию по хранению и заполнению свойства при десериализации. Может ли кто-нибудь помочь мне с этим?
Заранее спасибо.