2

如何使用 spring FirestoreReactiveRepository 从子集合中获取文档?

问题是:如何将子集合名称或路径动态地赋予@Document 注释?

我的firestore收藏:(城市是一级收藏,公寓是这个的子收藏)

cities - nyc (id)- |- name: New York City
                   |- country: USA
                   └ apartments - part_avenue (document id)
                                ├ name: Park Avenue
                                └ zip: 10022
                                - plaza (document id)
                                ├ name: Plaza Riverhouse 
                                └ zip: 10132

城市 POJO 是

@Document(collectionName = "cities")
public class City {

  @DocumentId
  private String id;
  private String name;
  private String country;
  private List<Apartment> apartments;
}

公寓 POJO 是:

@Document(collectionName = "apartments")
public class Apartment {

  @DocumentId
  private String id;
  private String name;
  private Integer zip;
}

CityRepository 从城市集合中获取数据

public interface CityRepository extends FirestoreReactiveRepository<City> {

}

在调用 findById(nyc) 时,公寓返回 null。我也想在城市对象中填充子集合。

嗨德米尔蒂,

在给定的示例中,宠物存储为用户对象(集合)的一部分,但我想将宠物存储在用户集合下的单独子集合中。

给定示例的结果: 在此处输入图像描述

实际要求是 pets 应该是如下子集合:因此,如果您可以提供一个示例将 pets 存储为子集合以及如何检索它,将会很有帮助。

在此处输入图像描述

4

1 回答 1

0

那应该行得通。看看这个样本——它做了类似的事情。你可以运行它,看看它是否适合你(它绝对适合我)。

一个潜在的问题是 - 您是否缺少 City 课程中的公共二传手?它们是转换正常工作所必需的。

如果这没有帮助,您能否创建一个复制问题的最小应用程序(可能在 github 上),以便我仔细查看?

于 2020-06-02T16:18:17.817 回答