【发布时间】:2020-05-16 15:58:31
【问题描述】:
我有一个存储在 Firestore 上的数据库,其结构如下:
-Collection
----Document
-------Subcollection
----------Documents with Data
----Document
-------Subcollection
----------Documents with Data
----Document
-------Subcollection
----------Documents with Data
我想检索位于子集合中的文档,但我似乎无法使用以下代码:
@Data
@AllArgsConstructor
@NoArgsConstructor
@Document(collectionName = "states")
public class State {
@DocumentId
String name;
int num_of_listings;
Flux<Listing> listings;
}
Listing的代码是:
@Data
@AllArgsConstructor
@NoArgsConstructor
@Document(collectionName = "listings")
public class Listing {
@DocumentId
String id;
String description;
}
想象每个“状态”都包含一些“列表”。每个 POJO 都附带一个控制器,该控制器具有 FirestoreReactiveRepository 类型的存储库注入,如下所示:
@Repository
public interface StateRepository extends FirestoreReactiveRepository<State> {
}
@RestController
@RequestMapping("/states")
@Slf4j
@RequiredArgsConstructor
public class StateController {
private final StateRepository stateRepository;
@GetMapping
private Flux<State> getAllStates() {
return stateRepository.findAll();
}
}
当我使用getAllStates() 请求所有状态时,我得到一个空的listings 字段,而所有其他字段都按预期进行了初始化。我怎样才能实现所需的功能?
@Edit:如果有直接访问子集合的方法,也欢迎!
【问题讨论】:
标签: java spring google-cloud-firestore spring-cloud