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

发布于 2025-01-09 14:15:58 字数 612 浏览 2 评论 0原文

我的 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 堆栈。

I have a property on my mongodb entity, lets call it foo.

When I retrieve this property, i want its value to be set on two different properties of my POJO, foo and bar

So if a document is registered as:

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

When the service retrieves it from the DB, i want the fetched entity to look like this:

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

Is there a way to achieve this only changing the entity class? I tried the following and it didn't work

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

    @BsonProperty("foo")
    private String bar;

    private String foo;

}

I'm using Spring Webflux and Reactive MongoDB stack.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

ゞ花落谁相伴 2025-01-16 14:15:58

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

}

It's not allowed to map multiple object fields to a single db field but you can redefine getter for the bar

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

    @BsonProperty("foo")
    private String foo;

    private String bar;

    public String getBar() { 
       return foo; 
    }

}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文