我正在学习Spring Data JPA,我遇到了术语“ JPA存储库”(具体为 Spring Data JPA存储库)。我想了解术语“ JPA存储库”是通用概念(如JPA - 标准规范)还是由Spring Data项目创造的?
在此上下文中“存储库”到底意味着什么?
答案 0 :(得分:2)
在此上下文中“存储库”到底意味着什么?
Repository是Patterns of Enterprise Application Architecture中引入的模式之一(Martin Fowler,2002)。在本书中, Repository 定义为:
使用a在域和数据映射层之间进行调解 用于访问域对象的类似集合的接口
具有复杂域模型的系统通常受益于一个层,例如 Data Mapper 提供的层,它隔离了域 来自数据库访问代码细节的对象。 在这样的系统中 可能值得建立另一层抽象 查询构造代码集中的映射层。这个 当存在大量域类时变得更加重要 或者大量的查询。特别是在这些情况下,添加此图层 帮助最小化重复的查询逻辑。
存储库在域和数据映射层之间进行调解, 表现得像内存中的域对象集合。 客户端对象 以声明方式构造查询规范并将其提交给 存储库满意度。对象可以添加到删除 存储库,因为它们可以从一个简单的对象集合,和 由Repository封装的映射代码将执行 幕后的适当操作。 从概念上讲,是一个存储库 封装了持久存储在数据存储中的对象集 对它们执行的操作,提供更面向对象的视图 持久层。存储库也支持目标 实现域之间的清晰分离和单向依赖 和数据映射层。
有关存储库模式的更详细讨论,您应该查看Patterns of Enterprise Application Architecture(Fowler,2002)和Domain Driven Design(Evans,2003)。