Spring-Data-REST和一个多态成员

时间:2017-12-21 07:28:35

标签: java json spring polymorphism spring-data-rest

我有一个我通过Spring Data REST公开的课程,它看起来像这样,getter和setter,以及不相关的字段,被省略:

public class System {
    @NotNull
    @Valid
    @OneToOne(optional = false, cascade = {CascadeType.PERSIST, CascadeType.MERGE}, orphanRemoval = true)
    @JoinColumn(name = "FLOW_ID")
    private FlowConfig flow;
}

FlowConfig本身并未通过RestRepository公开,它看起来像这样:

@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.EXISTING_PROPERTY, property = "@type")
//@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.PROPERTY, property = "@type")
@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@Table(name = "FLOWCONFIG")
@Audited
public abstract class FlowConfig extends BaseEntity {
    // Some fields, none of them representing the type of the entity
}

问题是两个@JsonTypeInfo注释都不起作用,我从来没有在JSON输出中获得类型信息。无论我放什么,我都不会在生成的JSON中得到@type

根据this linkEXISTING_PROPERTY应该有效,但事实并非如此。如果我使用默认的ObjectMapper测试JSON输出,则两个注释都会生成我想要的内容。

任何想法我做错了什么? 我是关于spring-data-rest-webmvc的2.6.9版本。

谢谢!

0 个答案:

没有答案