【问题标题】:How do I embed documents in a Map using Spring Data MongoDB?如何使用 Spring Data MongoDB 在地图中嵌入文档?
【发布时间】:2016-06-23 12:05:49
【问题描述】:

我有类似于以下的持久类:

public class Invoice {

    private Map<String, PurchasedItem> itemMap;

}

PurchasedItem 类看起来像:

public class PurchasedItem {

    private String name;

    private int quantity;

}

我们只是说,我有充分的理由不将 PurchasedItem 对象存储到它们自己的集合中,并且我想将它们中的每一个存储在它们各自的父 Invoice 对象下。如何注释我的类,以便 Spring Data MongoDB 自动将 itemMap 正确映射到以下内容:

"itemMap": {
    "tomato": {
        "name": "tomato",
        "quantity": 5
    }
}

【问题讨论】:

    标签: java spring mongodb spring-data-mongodb


    【解决方案1】:

    使用 @Document 注释发票(在 spring-mongo 中)

    此外,发票上还需要一个 ID。

    它将以 JSON 格式存储 Invoice 的所有字段,包括地图。

    【讨论】:

    • 你有什么错误吗?或者您可以分享创建的文档吗?
    • itemMap 已被识别,但它被存储为空地图。
    • 你能检查 itemMap 在保存时是否有值吗?我在 MongoDB 中使用过嵌套结构,没有任何严重的问题。可以分享一下dao的方法吗?此外,使用调试器检查正在保存的对象是否具有地图对象。
    • 我可以在父Invoice对象插入数据库之前确认itemMap不为空。我使用的是简单的MongoRepository,所以没有DAO代码可言;只是MongoRepository.insert
    猜你喜欢
    • 1970-01-01
    • 2014-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-18
    • 1970-01-01
    • 2016-09-16
    • 2016-10-05
    相关资源
    最近更新 更多