1

我有两个类人和任务。这是一对多的关系:一个人有一个任务列表,一个任务属于一个人。

我的应用程序有两个视图。在其中一个中,我需要显示与每个人相关的人员和任务。在另一个中,我需要显示与之关联的任务和人员。

我的第一个想法是在 Mongo中使用双向引用。因此,一个人将有一个任务 ID 列表,而一个任务将有一个人 ID。

像这样:

{
_id: ObjectID("AAF1"),
name: "Person Name",
tasks [
      ObjectID("ADF9"), 
      ObjectID("AE02"),
      ObjectID("AE73") 
    ]
}

和:

{
  _id: ObjectID("ADF9"), 
  description: "Task One",
  owner: ObjectID("AAF1")
}

但是我不知道如何设计我的 Spring 应用程序来查找所有 Persons 并构建一个包含嵌入其中的任务列表的单个 json 以发送到 UI。我正在使用 MongoOperations 来查找我使用的所有 Persons findAll(Person.class)。由于我没有在 Persons 中嵌入 Tasks 文档,因此这些对象只有 Tasks Id 的列表。获取任务时也是如此:我想将 Person 添加到我将发送到 UI 的 JSON 中。

我尝试使用@DBref并将任务列表添加到人员和人员到任务,但这以堆栈溢出结束,因为每个任务都有一个人,一个人有一个任务,每个任务都有一个人等等。

4

1 回答 1

2

我刚刚使用@JsonManagedReference 和@JsonBackReference 解决了我的问题。

class Person {
  @DBRef
  @JsonManagedReference
  private List<Tasks> tasks;
}

class Tasks {
  @DBRef
  @JsonBackReference
  private Person person;
}
于 2015-11-13T20:18:32.393 回答