首页 > 解决方案 > 从 mongo 中检索,在模型(java)中具有新字段但在 DB 中的旧数据中没有,无法解码

问题描述

以前的 java 对象:

@Value
@Wither
@Builder(toBuilder = true)
@NoArgsConstructor(force = true)
@JsonInclude(JsonInclude.Include.NON_NULL)
public class person {
    String id;
//    @BsonIgnore
    String username;
//    @BsonIgnore
    String fullName;

    @BsonCreator
    public DataDomainOwner(
            @BsonProperty("id") final String id,
            @BsonProperty("username") final String username,
            @BsonProperty("fullName") final String fullName
    ) {
        this.id = id;
        this.username = username;
        this.fullName = fullName;
    }
}

新模型是:

@Value
@Wither
@Builder(toBuilder = true)
@NoArgsConstructor(force = true)
@JsonInclude(JsonInclude.Include.NON_NULL)
public class person {
    String id;
//    @BsonIgnore
    String username;
//    @BsonIgnore
    String fullName;
    boolean acting;

    @BsonCreator
    public DataDomainOwner(
            @BsonProperty("id") final String id,
            @BsonProperty("username") final String username,
            @BsonProperty("fullName") final String fullName,
            @BsonProperty("status") final boolean status
    ) {
        this.iId = id;
        this.username = username;
        this.fullName = fullName;
        this.status = status;
    }
}
新模型的编解码器已注册。当我从 mongo 检索使用旧模型和新模型创建的数据时,它会引发 json 异常:解码失败。

有人可以帮忙吗?

标签: javamongodbdecode

解决方案


推荐阅读