我是json世界的新手。我在stackoverflow上提到了几个问题。我按照http://wiki.fasterxml.com/JacksonPolymorphicDeserialization的说法尝试了,但没有开始工作。我正在使用mongoDB。
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property= "type")
@JsonSubTypes({@Type(value = UserImpl.class, name = "userData")})
public abstract class User {
public abstract long getId();
public abstract void setId(long id);
public abstract String getFirstName();
public abstract void setFirstName(String firstName);
}
@JsonTypeName("userData")
public class UserImpl extends User {
@Id
private long id;
private String firstName;
// Constructor
//Getter and setter
}
我添加了以下依赖项:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.7.5</version>
</dependency>
我只是想将数据添加到用户表中。我正在
org.springframework.data.mapping.model.MappingInstantiationException: Failed to instantiate com.example.model.User using constructor public com.example.model.User() with arguments
at org.springframework.data.convert.ReflectionEntityInstantiator.createInstance(ReflectionEntityInstantiator.java:78)
at org.springframework.data.convert.ClassGeneratingEntityInstantiator.createInstance(ClassGeneratingEntityInstantiator.java:83)
at org.springframework.data.mongodb.core.convert.MappingMongoConverter.read(MappingMongoConverter.java:251)
....
请帮助我出错的地方。
答案 0 :(得分:0)
嗯,代码没有问题。在添加注释之前,我在User表中有一些数据。不得不删除所有数据,然后尝试。工作!