JPA 根据解析方法名自定义查询方法(逻辑判断、相等判断、范围判断、非空判断、模糊匹配、in判断、布尔值判断、排序)

1 方法签名

方法签名由动词+主题+关键词+断言+限制条件组成。

package com.dao;

import com.entity.UserEntity;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 用户Dao层
 */
@Repository
public interface UserRepository extends JpaRepository<UserEntity, String>, JpaSpecificationExecutor<UserEntity> {
    /**
     * 根据用户名和密码获取用户信息
     *
     * @param username 用户名
     * @param password 密码
     * @return
     */
    List<UserEntity> getUserEntityListByUsernameAndPassword(String username, String password);
}

2 动词

2.1 查询数据

2.1.1 get

用于查询数据。

    /**
     * 根据用户名获取用户信息
     *
     * @param username 用户名
     * @return
     */
    List<UserEntity> getUserEntityListByUsername(String username);

2.1.2 find

用于查询数据。

    /**
     * 根据用户名获取用户信息
     *
     * @param username 用户名
     * @return
     */
    List<UserEntity> findUserEntityListByUsername(String username);

2.1.3 read

用于查询数据。

    /**
     * 根据用户名获取用户信息
     *
     * @param username 用户名
     * @return
     */
    List<UserEntity> readUserEntityListByUsername(String username);

2.2 查询数据数量

2.2.1 count

用于查询数据数量。

    /**
     * 根据用户名获取用户信息数量
     *
     * @param username 用户名
     * @return
     */
    int countByUsername(String username);

3 主题

 主题一般为实体类名称,也可以省略。

    /**
     * 根据用户名获取用户信息
     *
     * @param username 用户名
     * @return
     */
    List<UserEntity> findUserEntityListByUsername(String username);

UserEntityList为主题。 

4 关键字

4.1 By

主要起到连接主题和断言的作用。

    /**
     * 根据用户名获取用户信息
     *
     * @param username 用户名
     * @return
     */
    List<UserEntity> findUserEntityListByUsername(String username);

5 断言

断言为实体类属性名称。

    /**
     * 根据用户名获取用户信息
     *
     * @param username 用户名
     * @return
     */
    List<UserEntity> findUserEntityListByUsername(String username);

Username为断言。

6 限制条件

6.1 逻辑判断

6.1.1 And

逻辑与判断。

    /**
     * 根据用户名和密码获取用户信息
     *
     * @param username 用户名
     * @param password 密码
     * @return
     */
    List<UserEntity> getUserEntityListByUsernameAndPassword(String username, String password);

 6.1.2 Or

逻辑或判断。

    /**
     * 根据用户名或密码获取用户信息
     *
     * @param username 用户名
     * @param password 密码
     * @return
     */
    List<UserEntity> getUserEntityListByUsernameOrPassword(String username, String password);

6.2 相等判断

6.2.1 Is

相等判断。

    /**
     * 根据用户名获取用户信息
     *
     * @param username 用户名
     * @return
     */
    List<UserEntity> getUserEntityListByUsernameIs(String username);

6.2.2 Equals

相等判断。

    /**
     * 根据用户名获取用户信息
     *
     * @param username 用户名
     * @return
     */
    List<UserEntity> getUserEntityListByUsernameEquals(String username);

6.2.3 Not

不相等判断。

    /**
     * 获取不为指定用户名的用户信息
     *
     * @param username 用户名
     * @return
     */
    List<UserEntity> getUserEntityListByUsernameNot(String username);

 6.2.4 IgnoreCase

等于指定条件,并且忽略大小写。

    /**
     * 获取用户名为指定用户名的用户信息(忽略大小写)
     *
     * @param username 用户名
     * @return
     */
    List<UserEntity> getUserEntityListByUsernameIgnoreCase(String username);

6.3 范围判断

6.3.1 Between

位于两个条件之间。

    /**
     * 获取用户名为指定两个用户名之间的用户信息
     *
     * @param username1 用户名
     * @param username2 用户名
     * @return
     */
    List<UserEntity> getUserEntityListByUsernameBetween(String username1, String username2);

6.3.2 LessThan

小于指定条件。

    /**
     * 获取用户名为小于指定用户名的用户信息
     *
     * @param username 用户名
     * @return
     */
    List<UserEntity> getUserEntityListByUsernameLessThan(String username);

6.3.3 LessThanEqual

小于等于指定条件。

    /**
     * 获取用户名为小于等于指定用户名的用户信息
     *
     * @param username 用户名
     * @return
     */
    List<UserEntity> getUserEntityListByUsernameLessThanEqual(String username);

6.3.4 GreaterThan

大于指定条件。

    /**
     * 获取用户名为大于指定用户名的用户信息
     *
     * @param username 用户名
     * @return
     */
    List<UserEntity> getUserEntityListByUsernameGreaterThan(String username);

6.3.5 GreaterThanEqual

大于等于指定条件。

    /**
     * 获取用户名为大于等于指定用户名的用户信息
     *
     * @param username 用户名
     * @return
     */
    List<UserEntity> getUserEntityListByUsernameGreaterThanEqual(String username);

6.3.6 After

大于指定条件。

    /**
     * 获取用户名为大于指定用户名的用户信息
     *
     * @param username 用户名
     * @return
     */
    List<UserEntity> getUserEntityListByUsernameAfter(String username);

6.3.7 Before

小于指定条件。

    /**
     * 获取用户名为小于指定用户名的用户信息
     *
     * @param username 用户名
     * @return
     */
    List<UserEntity> getUserEntityListByUsernameBefore(String username);

6.4 非空判断

6.4.1 IsNull

指定字段为null。

    /**
     * 获取性别为null的用户信息
     *
     * @return
     */
    List<UserEntity> getUserEntityListBySexIsNull();

6.4.2 IsNotNull

指定字段不为null。

    /**
     * 获取性别不为null的用户信息
     *
     * @return
     */
    List<UserEntity> getUserEntityListBySexIsNotNull();

6.4.3 NotNull

指定字段不为null。

    /**
     * 获取性别不为null的用户信息
     *
     * @return
     */
    List<UserEntity> getUserEntityListBySexNotNull();

6.5 模糊匹配

6.5.1 Like

等于指定条件。

    /**
     * 获取用户名为指定用户名的用户信息
     *
     * @param username 用户名
     * @return
     */
    List<UserEntity> getUserEntityListByUsernameLike(String username);

6.5.2 NotLike

不等于指定条件。

    /**
     * 获取用户名为不为指定用户名的用户信息
     *
     * @param username 用户名
     * @return
     */
    List<UserEntity> getUserEntityListByUsernameNotLike(String username);

6.5.3 StartingWith

以指定条件开头。

    /**
     * 获取用户名为指定用户名开头的用户信息
     *
     * @param username 用户名
     * @return
     */
    List<UserEntity> getUserEntityListByUsernameStartingWith(String username);

6.5.4 EndingWith

以指定条件结尾。

    /**
     * 获取用户名为指定用户名结尾的用户信息
     *
     * @param username 用户名
     * @return
     */
    List<UserEntity> getUserEntityListByUsernameEndingWith(String username);

6.5.5 Containing

包含指定条件。

    /**
     * 获取用户名包含指定用户名的用户信息
     *
     * @param username 用户名
     * @return
     */
    List<UserEntity> getUserEntityListByUsernameContaining(String username);

6.6 in判断

6.6.1 In

满足指定条件之一。

    /**
     * 根据用户名列表获取用户信息
     *
     * @param usernameList 用户名列表
     * @return
     */
    List<UserEntity> getUserEntityListByUsernameIn(List<String> usernameList);

6.6.2 NotIn

不在指定条件之内。

    /**
     * 用户名不在用户名列表的用户信息
     *
     * @param usernameList 用户名列表
     * @return
     */
    List<UserEntity> getUserEntityListByUsernameNotIn(List<String> usernameList);

6.7 布尔值判断

6.7.1 True

指定字段为true。

    /**
     * 获取性别为true的用户信息
     *
     * @return
     */
    List<UserEntity> getUserEntityListBySexTrue();

6.7.2 False

指定字段为false。

    /**
     * 获取性别为false的用户信息
     *
     * @return
     */
    List<UserEntity> getUserEntityListBySexFalse();

6.8 排序

6.8.1 OrderByXxxDesc

根据指定字段降序排序。

    /**
     * 获取用户信息,根据用户名降序
     *
     * @return
     */
    List<UserEntity> getUserEntityListByOrderByUsernameDesc();

6.8.2 OrderByXxxAsc

根据指定字段升序排序。

    /**
     * 获取用户信息,根据用户名升序
     *
     * @return
     */
    List<UserEntity> getUserEntityListByOrderByUsernameAsc();

注:

有关JPA的配置请查看以下博客。

Spring Boot 配置JPA(Hibernate)考虑MySQL、SQL Server、Oracle数据库(查询、新增、更新、删除数据)

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值