【问题标题】:如何使用spring数据从firestore中的子集合中获取文档
【发布时间】:2020-09-14 12:30:30
【问题描述】:

如何使用 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。我也想在城市对象中填充子集合。

嗨,Dmirty,

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

给定示例的结果:

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

【问题讨论】:

    标签: java firebase google-cloud-firestore spring-data-jpa spring-cloud-gcp


    【解决方案1】:

    应该可以。看看这个sample - 它做了类似的事情。 你可以运行它,看看它是否适合你(它绝对适合我)。

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

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

    【讨论】:

    • 在给定的示例中,宠物是用户集合的一部分,在我的例子中,宠物是用户集合的子集合。我在下面的评论中提供了屏幕截图。
    猜你喜欢
    • 2020-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-15
    • 1970-01-01
    • 2021-02-16
    • 2020-11-26
    • 2021-10-31
    相关资源
    最近更新 更多