首页 > 解决方案 > 使用 java 在 Micronaut 中将 MongoDb ObjectId _id 更改为字符串

问题描述

我有以下 mongo 实体的 Pojo 类

public class Product {
    @BsonProperty("_id")
    @BsonId
    private ObjectId id;
    private String name;
    private float price;
    private String description;
}

当我按照以下代码获取 mongo 结果时

var item = Flowable.fromPublisher(this.repository.getCollection("product", Product.class).find()).blockingIterable();

id id 映射了这样的东西

在此处输入图像描述

但是,在数据库中,id 是这样的

在此处输入图像描述

如何以正确的方式映射此 id,我正在使用带有 java 15 的 Micronaut 框架

标签: javamicronautmongo-javamicronaut-datareactive-mongo-java

解决方案


您可以添加简单的吸气剂:

@JsonGetter
public String getObjectId() {
  return id.toString();
}

推荐阅读