Spring Data Jpa 方法命名规则查询

Spring Data Jpa 方法命名规则查询

方法命名规则查询是对jpql查询,更加深入的一层封装, 我们只需要按照SpringDataJpa提供的方法名称规则定义方法,不需要再去配置jpql语句,完成查询

1. findBy开头 :代表查询 对象中属性的名称(首字母大写) 含义:根据属性名称进行查询

案例代码演示:

CustomerDao接口代码

/**
     方法命名规则查询
     *      方法名的约定:
     *          findBy: 查询
     *              对象中的属性名(首字母大写): 查询的条件
     *              CustName
     *              *默认情况: 使用 等于的方式查询
     *              *特殊的查询方式
     *  
     *  findByCustName  --- 根据客户名称查询
     *
     *  在springdatajap的运行阶段
     *      会根据方法名称进行解析 findBy  from xxx(实体类)
     *                                  属性名称  where custName=
     *
     *      1.findBy + 属性名称(根据属性名称进行完成匹配的查询)
     *      2.findBy + 属性名称 + "查询方式(Like | isnull)"
     *      findByCustNameLike
     */
    public Customer findByCustName(String custName);

测试类代码

/**
     * 测试 方法命名规则查询
     * findBy + 属性名称(根据属性名称进行完成匹配的查询)
     */
    @Test
    public void findByCustName(){
          
   
        Customer customer = customerDao.findByCustName("卡布达");
        System.out.println(customer);
    }

查询结果: 成功

2.findBy + 属性名称 + "查询方式(Like | isnull)"

CustomerDao接口代码

// 方法命名规则查询  模糊查询
    public List<Customer> findByCustNameLike(String custName);

测试类代码

**
     * 测试 方法命名规则查询  模糊查询
     */
    @Test
    public void testFindByCustNameLike(){
          
   
        List<Customer> list = customerDao.findByCustNameLike("%黑马%");
        for (Customer c:list
             ) {
          
   
            System.out.println(c);
        }
    }

查询结果: 成功

3.多条件查询: findBy + 属性名 + “查询方式” + “多条件连接符(and|or)” + 属性名 + "查询方式"

CustomerDao接口代码

// 使用客户名称模糊匹配和客户所属行业精准匹配的查询
    public Customer findByCustNameLikeAndCustIndustry(String custName,String custIndustry);

测试类代码

/**
     * 测试 方法命名规则查询  使用客户名称模糊匹配和客户所属行业精准匹配的查询
     */
    @Test
    public void testFindByCustNameLikeAndCustIndustry(){
          
   
        Customer customer = customerDao.findByCustNameLikeAndCustIndustry("%黑马%","教育");

        System.out.println(customer);
    }

查询结果: 成功

最累的时候,家人是你最好的归宿。
经验分享 程序员 微信小程序 职场和发展