Spring Boot Data JPA 派生查询教程展示了如何从方法名称创建查询。
Spring 是用于创建企业应用的流行 Java 应用框架。 Spring Boot 是 Spring 框架的演进,可帮助您轻松创建独立的,生产级的基于 Spring 的应用。
Spring Data JPA
Spring Data JPA 有助于实现基于 JPA 的存储库。 它增强了对基于 JPA 的数据访问层的支持。 它使构建使用数据访问技术的 Spring 支持的应用变得更加容易。 Spring Data JPA 是较大的 Spring Data 系列的一部分。
Spring Data JPA 派生的查询
Spring Data JPA 可以从方法名称创建查询。 这是约定而不是配置的特定形式。 Spring Data JPA 从具有属性组合的特定关键字创建查询; 例如:findByAgeLessThan
,findByFirstnameEndingWith
或findByFirstnameEquals
。
Spring Boot Data JPA 派生查询示例
以下应用使用两个派生查询。
这是项目结构。
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
。
@Entity
注解指定该类是一个实体,并映射到数据库表。 @Table
注解指定要用于映射的数据库表的名称。
@Id
注解指定实体的主键,@GeneratedValue
提供规范主键值的生成策略。
resources/schema-h2.sql
启动应用时,将执行schema-h2.sql
脚本。 它创建一个新的数据库表。
resources/data-h2.sql
之后,执行data-h2.sql
文件。 它用数据填充表。
com/zetcode/repository/CityRepository.java
我们有两种方法可以从中生成派生查询。
在这里,查询将查找以指定字符串结尾的表单城市名称。
查询将在其中查找人口少于指定数量的城市。
com/zetcode/service/ICityService.java
ICityService
提供了两种签约方法。
com/zetcode/service/CityService.java
CityService
包含服务方法实现。 派生的查询在cityRepository
上调用。
com/zetcode/MyRunner.java
MyRunner
获取所有人口少于一百万的城市以及所有名称以“ est”结尾的城市。
com/zetcode/Application.java
Application
设置 Spring Boot 应用。 @SpringBootApplication
启用自动配置和组件扫描。
我们运行该应用。
在本教程中,我们使用了 Spring Data JPA 派生的查询来获取数据。