Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Jackson Polymorfic@JsonTypeInfo类型属性始终为空_Java_Json_Hibernate_Jackson - Fatal编程技术网

Java Jackson Polymorfic@JsonTypeInfo类型属性始终为空

Java Jackson Polymorfic@JsonTypeInfo类型属性始终为空,java,json,hibernate,jackson,Java,Json,Hibernate,Jackson,我在父类上有以下配置: @JsonTypeInfo( use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.EXISTING_PROPERTY, property = "type", visible = true ) @JsonSubTypes({ @JsonSubTypes.Type(value = AnalysisViewer.class, name = "ANALYSIS"), @JsonSubTypes.Type(valu

我在父类上有以下配置:

@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)

使用此配置或更改为
visible=false
include=JsonTypeInfo.As.PROPERTY
时,我要么在序列化时收到一个错误,表示无法写入两次相同的属性,要么收到一个错误,表示无法在
type
列中保存空值

我需要的是在数据库中有type属性,并使用它来教Jackson子类型。我尝试了很多不同的配置,但我找不到关于保留和填充反序列化属性的文档。有人能帮我吗


提前感谢。

将参数
可见
添加到
@JsonTypeInfo
并使其成为
。默认情况下,它是
false

@JsonTypeInfo(..., visible = true)
从文件中:

属性,该属性定义类型标识符值是作为JSON流的一部分传递给反序列化程序(true),还是由TypeDeserializer处理和删除(false)。属性对序列化没有影响

默认值为false,这意味着Jackson处理并从传递给JsonDeserializer的JSON内容中删除类型标识符

@JsonTypeInfo(..., visible = true)