:尝试解析抽象类的子类型时缺少类型ID

时间:2019-12-11 17:59:12

标签: hibernate objectmapper hibernate-types

我有一个问题要解决大约2天,但仍然没有找到解决该问题的方法。

我有一个具体的类和两个实现的类,分别是 FilteredObjectData CustomerFilteredObjectJson ProductFilteredObjectJson

这些类如下:

@JsonSubTypes({
        @JsonSubTypes.Type(value = CustomerFilteredObjectJson.class, name = "Customer"),

        @JsonSubTypes.Type(value = ProductFilteredObjectJson.class, name = "Product")}
)
public abstract class FilteredObjectData implements Serializable {
    private static final long serialVersionUID = -8746510068813833450L;
}
@Getter
@Setter
@NoArgsConstructor
public class CustomerFilteredObjectJson extends FilteredObjectData implements Serializable {

    private static final long serialVersionUID = -5827825016371137372L;
    private List<Long> cities;
    private List<Long> distiricts;
    private List<Long> channels;
    private String salesmanCode;
    private List<String> accountCodes;
    private List<String> taxNumbers;
}
@Getter
@Setter
@NoArgsConstructor
public class ProductFilteredObjectJson extends FilteredObjectData implements Serializable {

    private static final long serialVersionUID = 2310254379556207058L;
    private List<String> productCodes;
}

同时,我正在使用@vladmihalcea的hibernate-type-52框架。

现在,当我尝试从PostgreSQL获取数据时,出现如下错误;

com.fasterxml.jackson.databind.exc.InvalidTypeIdException: Missing type id when trying to resolve subtype of [simple type, class io.salesart.core.entities.json.FilteredObjectData]: missing type id property 'type'
 at [Source: (String)"{"productCodes": []}"; line: 1, column: 20]

是什么原因导致该问题?请你帮助我好吗 ?

2 个答案:

答案 0 :(得分:0)

如果您基于https://sass-lang.com/documentation/at-rules/use中现有的测试之一创建复制测试用例,那么我可以看看问题出在哪里。

向我发送具有复制测试用例的请求请求,然后我将对其进行调查。

答案 1 :(得分:0)

我在使用 Optional 类时遇到了同样的错误。

例如Optional<Computer> computer = new Computer(); 并将 this.saveTo(computer) 直接存储到缓存中。

但是当我将方法参数更改为 this.saveTo(computer.get()); 然后问题解决了。