Spring Boot Data JPA Query By Example 教程展示了如何使用 Spring Data JPA Query By Example 技术创建查询。
Spring 是用于创建企业应用的流行 Java 应用框架。 Spring Boot 是 Spring 框架的演进,可帮助您轻松创建独立的,生产级的基于 Spring 的应用。
Spring Data JPA
Spring Data JPA 有助于实现基于 JPA 的存储库。 它增强了对基于 JPA 的数据访问层的支持。 它使构建使用数据访问技术的 Spring 支持的应用变得更加容易。 Spring Data JPA 是较大的 Spring Data 系列的一部分。
Spring Data JPA 查询示例
示例查询(QBE)是一种具有简单界面的用户友好查询技术。 它允许动态查询创建。 我们不需要使用商店特定的查询语言编写查询。
我们处理三个对象。 probe
是带有填充字段的域对象的实际示例。 ExampleMatcher
包含有关如何匹配特定字段的详细信息。 Example
由探针和ExampleMatcher
组成。 它用于创建查询。
QBE 有一些局限性。 它无法创建一些更高级的查询。
Spring Boot Data JPA QBE 示例
以下应用使用 QBE 生成查询。
这是项目结构。
pom.xml
Maven POM 文件包含 H2 数据库和 Spring Boot Data JPA 的依赖项。
resources/application.properties
在application.properties
文件中,我们编写了 Spring Boot 应用的各种配置设置。 使用spring.main.banner-mode
属性,我们可以关闭 Spring 标语。
spring.datasource.platform
设置数据库的供应商名称。 在初始化脚本中使用它。 spring.jpa.hibernate.ddl-auto
禁止从实体自动创建模式。
com/zetcode/model/City.java
这是City
实体。 每个实体必须至少定义两个注解:@Entity
和@Id
。
resources/schema-h2.sql
启动应用时,将执行schema-h2.sql
脚本。 它创建一个新的数据库表。
resources/data-h2.sql
之后,执行data-h2.sql
文件。 它用数据填充表。
com/zetcode/repository/CityRepository.java
我们通过从QueryByExampleExecutor
扩展存储库来启用 QBE API。
com/zetcode/service/ICityService.java
ICityService
提供了两种签约方法。
com/zetcode/service/CityService.java
CityService
包含服务方法实现。
我们有一个City
域对象。 这称为探针。
匹配器将以城市名称结尾的字符串匹配,并忽略人口。
根据域对象和匹配器创建一个Example
。
Example
传递给findAll()
方法。
com/zetcode/MyRunner.java
MyRunner
查找“布拉迪斯拉发”和“柏林”城市,并找到所有名称以“ est”结尾的城市。
com/zetcode/Application.java
Application
设置 Spring Boot 应用。 @SpringBootApplication
启用自动配置和组件扫描。
我们运行该应用。
在本教程中,我们使用了 Spring Data JPA 示例查询技术来生成查询。