《Spring Data实战》——1.3 领域

1.3 领域

为了说明各种Spring Data模块的用法,我们会使用电子商务部门的示例领域(如图1-1所示)。由于各种NoSQL数据存储通常具有特定的功能和适用场景,在个别章节会对领域的实现方式做出一些调整,甚至只有它的部分实现,这种做法不代表必须以一种特定的方法来实现领域,而是强调某些存储应该更适用于特定的应用场景。

在模型的核心,有客户(customer),包含客户的基本资料,如姓、名、电子邮箱地址、地址(一组包含街道、城市和国家的集合),还有由产品名称、描述、价格和其他属性构成的产品(product)。这些抽象是组成CRM(客户关系管理系统)和库存系统的基础。最重要的是客户可以订购订单(Order),订单信息包含订购的客户、邮寄和付款地址、订购时间、订单状态和一组商品明细。而这些商品明细又包含一个特定的产品、订购的数量和产品的价格。

图1-1 领域模型

时间: 2024-11-09 00:19:54

《Spring Data实战》——1.3 领域的相关文章

《Spring Data实战》——导读

前言 数据访问领域在过去的7年间发生了重要的变化.过去30年间一直占据企业级数据存储和处理核心位置的关系型数据库已经不能再独领风骚了.在过去的7年间诞生了很多可选的数据存储形式,当然也有的面临着消亡,它们被使用到了带有关键任务的企业级应用程序之中.这些新的数据存储形式是为了解决特定的数据访问问题而设计的,使用关系型数据库通常无法高效地解决这些问题. 将关系型数据库推到拐点的一个问题就是扩展性(scale).试问,我们如何将几百甚至几千TB(terabyte)的数据存储到关系型数据库中?这个问题让

《Spring Data实战》——第1章 Spring Data项目 1.1为Spring开发人员提供的NoSQL数据访问功能

第一部分 背景知识 第1章 Spring Data项目 Spring Data项目是在"Spring One 2010开发者大会"上创建的,该项目起源于当年早些时候Rod Johnson(SpringSource)和Emil Eifrem(Neo Technologies)共同参与的一场黑客会议.他们试图把Neo4j图形数据库整合到Spring框架中,并评估了各种不同的方式.这次会议最终为初始版本的Spring Data Neo4j模块奠定了基础,这个新的SpringSource项目旨

《Spring Data实战》——第2章 Repository:便利的数据访问层 2.1快速入门

第2章 Repository:便利的数据访问层 长期以来,实现应用程序的数据访问层一直是件繁琐的工作,因为我们经常需要编写大量的样板式代码,而且贫血(anemic)的领域类并没有按照真正面向对象或领域驱动方式来进行设计.因此Spring Data Repository抽象的目标就是大幅简化各种持久化存储持久层的实现.我们将会使用Spring Data JPA模块作为例子来讨论Repository抽象的基本理念.对于其他类型的存储,可以参考对应的例子. 2.1 快速入门 我们选取领域模型中的Cus

《Spring Data实战》——2.2 定义查询方法

2.2 定义查询方法 2.2.1 查找查询的策略 刚才看到的接口只声明了一个简单的查询方法.声明的方法会被基础设施探测到并进行解析,最终衍生出与存储相关的查询.但是,随着查询变得更加复杂,方法名会变得很冗长,显得很笨拙.对于更复杂的查询,依靠方法解析器所支持的关键字就不够了.因此,每种存储模块都提供了@Query注解,如示例2-8所示,它会接受存储相关的查询语言所支持的查询字符串,从而允许查询执行时进一步地定制化. 示例2-8 使用@Query注解手动定义查询 在这里,我们使用JPA作为例子并手

《Spring Data实战》——2.4 IDE集成

2.4 IDE集成 在3.0版本中,Spring工具套件(Spring Tool Suite,STS)提供了与Spring Data Repository抽象进行集成的功能.STS为Spring Data所提供的核心支持是查找方法的查询衍生机制.它所能做到的第一件事就是在IDE中校验衍生查询方法的正确性,这样,不需要启动ApplicationContext就能立刻探测出方法名中引入的拼写错误. 如图2-1所示,IDE检测到Descrption是非法的,因为Product类中并没有这样的属性.为了

《Spring Data实战》——1.4 示例代码

1.4 示例代码 本书的示例代码可从GitHub上获取.它是一个Maven项目,包含每一章的模块.另外,还需要在电脑中安装Maven 3或者一个能导入Maven项目的IDE,比如Spring Tool Suite(STS).从下面的操作中可以看到,取得示例代码就如同复制版本库一样简单: 现在可以在命令行中执行Maven来构建代码: 这样Maven会解析依赖.编译和测试代码,执行测试,最终打包模块. 1.4.1 将源码导入到IDE STS/Eclipse 由于STS已经配备了m2eclipse插件

《Spring Data实战》——2.3 定义Repository

2.3 定义Repository 到目前为止,我们看到了带有查询方法的Repository接口,这些查询有的是从方法名中衍生出来的,有的是手动声明的,这取决于Spring Data为实际存储类型所提供的使用方式.为了衍生出这些查询,我们必须扩展Spring Data的特定标识接口:Repository.除了查询以外,在你的Repository中还需要一些其他的功能:存储对象,删除对象,根据ID进行查找,返回所有存储的实体或按页对它们进行访问.通过Repository接口来暴露这些功能的最简单方式

Spring Data JPA方法定义规范【从零开始学Spring Boot】

视频&交流平台] à SpringBoot网易云课堂视频 http://study.163.com/course/introduction.htm?courseId=1004329008 à Spring Boot交流平台 http://412887952-qq-com.iteye.com/blog/2321532           事情的起因:有人问过我们这个这个问题:为什么我利用Spring data jpa写的方法没有按照我想要的情况进行执行呢?我记得当时只是告诉他你你先看看Spring

《Spring Data 官方文档翻译》preface到2.requirements

Table of contents for 10 <Spring Data 官方文档翻译>preface到2.requirements 原文链接 前言 Spring Data Cassandra项目将核心Spring概念应用于使用Cassandra Columnar数据存储的开发解决方案. 我们提供了一个"模板"作为高级抽象用于存储和查询文档. 你会注意到其与Spring框架中的JDBC支持的相似之处. 1. 项目元数据 版本控制 – https://github.com/