【问题标题】:Map one mongodb field to two POJO properties将一个 mongodb 字段映射到两个 POJO 属性
【发布时间】:2022-03-14 22:59:57
【问题描述】:

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

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

所以如果一个文档被注册为:

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

当服务从数据库中检索它时,我希望获取的实体如下所示:

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

有没有办法只改变实体类来实现这一点?我尝试了以下方法,但没有成功

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

    @BsonProperty("foo")
    private String bar;

    private String foo;

}

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

【问题讨论】:

  • 据我所知,不允许将多个属性映射到单个数据库字段,但您可以重新定义 getter for` bar` public String getBar() { return foo; }
  • @Alex 很好,我稍后会尝试,如果它适用于我的用例,我会回到这里 :)
  • @Alex 请发表您的评论作为答案

标签: java mongodb spring-webflux spring-data-mongodb spring-data-mongodb-reactive


【解决方案1】:

不允许将多个对象字段映射到单个 db 字段,但您可以为 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; 
    }

}

【讨论】:

    猜你喜欢
    • 2020-02-29
    • 1970-01-01
    • 2020-08-03
    • 1970-01-01
    • 1970-01-01
    • 2014-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多