4.1.4 编写 Cassandra Repository
正如您在第 3 章中看到的,编写一个基于 Spring Data 的 Repository,只需要声明扩展自 Spring Data 的基础接口。以及有选择性地,声明一些自定义查询的其他查询方法。事实证明,编写 Cassandra Repository 也没有什么不同。
事实上,在我们已经编写的 Repository 几乎不需要更改,就可以适配 Cassandra 持久化。例如,考虑我们在第 3 章中创建的 IngedientRepository:
package tacos.data;
import org.springframework.data.repository.CrudRepository;
import tacos.Ingredient;
public interface IngredientRepository
extends CrudRepository<Ingredient, String> {
}
通过扩展 Crudepository, IngredientRepository 现在准备好了持久化 ID 属性(对于 Cassandra 来说是主键属性)是 String 类型的 Ingredient 对象。真是太棒了!IngredientRepository 完全不用更改。
OrderRepository 所需的更改只要稍微多一些。当扩展 CrudRepository 时,指定的 ID 参数的类型不是 Long,而是 UUID。
package tacos.data;
import java.util.UUID;
import org.springframework.data.repository.CrudRepository;
import tacos.TacoOrder;
public interface OrderRepository
extends CrudRepository<TacoOrder, UUID> {
}
Cassandra 很强大,当它与 Spring Data 结合,您就可以在 Spring 应用程序中体验到这些强大功能。现在让我们转移注意力,来看看另一个 Spring Data 支持的数据库:MongoDB。