4.2.3 编写 MongoDB Repository 接口

Spring Data MongoDB 提供了与 Spring Data JPA 和 Spring Data Cassandra 类似的,自动化的 Repository 支持。

您将首先定义一个 Repository,用于将 Ingredient 对象持久化为文档。您可以编写 IngredientRepository 来扩展 CrudRepository:

package tacos.data;

import org.springframework.data.repository.CrudRepository;

import tacos.Ingredient;

public interface IngredientRepository
      extends CrudRepository<Ingredient, String> {
}

等一下!它看起来与您在第 4.1 节,为 Cassandra 所写的 IngredientRepository 接口完全相同。实际上,确实是相同的接口,没有任何变化。这也突显了扩展 CrudRepository 的好处,在不同的数据库类型中更具可移植性。为 Cassandra 所写的接口,对于 MongoDB 也同样适用。

来看一下 OrderRepository 接口,您可以看到它非常简单:

package tacos.data;

import org.springframework.data.repository.CrudRepository;

import tacos.TacoOrder;

public interface OrderRepository
      extends CrudRepository<TacoOrder, String> {
}

与 IngredientRepository 一样,OrderRepository 扩展了 CrudRepository 以获得在其 insert()方法中提供的优化。其他方面,与您迄今定义的其他一些 Repository 进行比较,就没有什么特别的了。但是要注意,扩展 CrudRepository 时的 ID 参数现在是 String,而不是 Long(对于 JPA )或 UUID(对于 Cassandra)。这是我们在 TacoOrder 中所做的修改,以支持自动生成 ID。

最后,使用 Spring Data MongoDB 与其他 Spring Data 项目并没有太大的不同。只是领域类型使用的注解不同。除了扩展 CrudRepository 时指定的 ID 参数,接口几乎完全相同。

results matching ""

    No results matching ""