如何从 spring 正确引导的映射中引用不同的域模型?

How to reference a different domain model from within a map with spring boot correctly?

我有以下 mongodb 文档:

{ 
    "_id" : ObjectId("57a068b13a4b500d7f2c72a2"), 
    "results" : [
        {
            "position" : NumberInt(12), 
            "product" : DBRef("product", ObjectId("579f92cfcb22890ba7b0ae15"))
        }
    ]
}

如何使用 spring-data-mongodb 将此文档正确映射到 spring 引导 domain/model class?

在模型中使用以下属性是可行的,但我认为它不够清楚,因为我必须确保地图中的对象是 objectId 或 DBRef。

private List<Map<String, Object>> results;

创建单独的结果模型并使用 private List<Result> results; 也没有用。

大致相当于这个的东西应该可以解决问题:

class MyDocument {
  ObjectID id;
  List<Result> results;
  …
}

class Result {
  int position;
  @DBRef Product product;
  …
}

class Product {
  ObjectId id;
}

重要的部分:

  • 基本文档中嵌入对象的专用类型。
  • 使用 @DBRef
  • 指向引用文档的指针
  • 引用对象必须使用ObjectId作为标识符类型