12. Spring Boot JPA的查询语句

之前的文章中,我们讲解了如何使用Spring Boot JPA, 在Spring Boot JPA中我们可通过构建查询方法或者通过@Query注解来构建查询语句,本文我们将会更详细的讨论查询语句的构建。

准备工作

首先我们需要添加依赖,这里我们还是使用H2内存数据库:

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>

        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <scope>runtime</scope>
        </dependency>

我们创建一个Entity:

@Data
@Entity
public class Movie {
    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE)
    private Long id;
    private String title;
    private String director;
    private String rating;
    private int duration;
}

构建初始化data.sql:

构建Repository:

Containing, Contains, IsContaining 和 Like

如果我们想要构建模下面的模糊查询语句:

我们可以这样写:

将上面的语句添加到Repository中就够了。

我们看下怎么测试:

Spring 还提供了Like 关键词,我们可以这样用:

测试代码:

StartsWith

如果我们需要实现下面这条SQL:

我们可以这样使用:

测试代码如下:

EndsWith

如果我们要实现下面的SQL:

可以这样构建:

测试代码如下:

大小写不敏感

要是想实现大小不敏感的功能我们可以这样:

测试代码如下:

Not

要想实现Not的功能,我们可以使用NotContains, NotContaining, 和 NotLike关键词:

测试代码如下:

NotLike:

测试代码如下:

@Query

如果我们要实现比较复杂的查询功能,我们可以使用@Query,下面是一个命名参数的使用:

如果有多个参数,我们可以这样指定参数的顺序:

下面是测试代码:

在Spring Boot2.4之后,我们可以使用SpEL表达式:

看下怎么使用:

本文的例子可以参考

更多教程请参考 flydean的博客

最后更新于

这有帮助吗?