将一个 mongodb 字段映射到两个 POJO 属性

Map one mongodb field to two POJO properties

我的 mongodb 实体上有一个 属性,我们称它为 foo

当我检索这个 属性 时,我希望它的值设置在我的 POJO 的两个不同属性上,foobar

因此,如果文档注册为:

{
  "_id": "xxxxxx",
  "foo": "123",
}

当服务从数据库中检索它时,我希望获取的实体看起来像这样:

{
  "_id": "xxxxxx",
  "foo": "123",
  "bar": "123",
}

有没有办法只改变实体 class 来实现这一点?我尝试了以下但没有用

@Getter
@Setter
@Document("test")
public class MyClass {
    @Id
    private String _id;

    @BsonProperty("foo")
    private String bar;

    private String foo;

}

我正在使用 Spring Webflux 和 Reactive MongoDB 堆栈。

不允许将多个对象字段映射到单个数据库字段,但您可以为 bar

重新定义 getter
@Getter
@Setter
@Document("test")
public class MyClass {
    @Id
    private String _id;

    @BsonProperty("foo")
    private String foo;

    private String bar;

    public String getBar() { 
       return foo; 
    }

}