首页 > 解决方案 > Spring Data MongoDb | 通用模型和存储库

问题描述

我有一个用例从多个文档中获取 id(使用 Spring Data)。假设我们在 db 中有以下文档: 客户、订单、购物车、地址 我需要获取特定客户的订单、购物车和地址的 ID。

public interface Order extends MongoRepository<Order, String> {
    List<Order> findOrderByCustomerId();
}

public interface Cart extends MongoRepository<Cart, String> {
    List<Cart> findCartByCustomerId();
}

public interface Address extends MongoRepository<Address, String> {
    List<Address> findAddressByCustomerId();
}

那么我们当然会有相关的模型

@Document(collection = "order")
public class Order {
    @Id
    private String id;

    private String customerId;
    ...
}

@Document(collection = "cart")
public class Cart {
    @Id
    private String id;

    private String customerId;
    ...
}

@Document(collection = "address")
public class Address {
    @Id
    private String id;

    private String customerId;
    ...
}

我们可以在不为每个 mongo 文档定义模型和存储库的情况下使用通用实现吗?我也可以只获取文档的 ID,而不是整个订单、购物车或地址文档。

这些文档是单独的微服务的一部分,不扩展或实现任何抽象类。我们可以使用通用模型和存储库来做到这一点吗?

标签: spring-bootspring-data-mongodb

解决方案


推荐阅读