zoukankan      html  css  js  c++  java
  • SpringData JPA方法命名规则查询

    顾名思义,方法命名规则查询就是根据方法的名字,就能创建查询。

    只需要按照Spring Data JPA提供的方法命名规则定义方法的名称,就可以完成查询工作。

    Spring Data JPA在程序执行的时候会根据方法名称进行解析,并自动生成查询语句进行查询

    按照Spring Data JPA 定义的规则,查询方法以findBy开头,涉及条件查询时,条件的属性用条件关键字连接,

    要注意的是:条件属性首字母需大写。框架在进行方法名解析时,会先把方法名多余的前缀截取掉,然后对剩下部分进行解析。

    //方法命名方式查询(根据客户名称查询客户)
    public Customer findByCustName(String custName);

    具体的关键字,使用方法和生产成SQL如下表所示:

    /**
     * 客户持久层接口
     * JpaRepository<实体类类型,主键类型>:用来完成基本CRUD操作
     * JpaSpecificationExecutor<实体类类型>:用于复杂查询(分页等查询操作)
     */
    public interface CustomerDao extends JpaRepository<Customer, Long>, JpaSpecificationExecutor<Customer> {
        /**
         * JPA方法命名规则查询
         *      根据客户名称查询
         */
        Customer findByCustName(String custName);
    
        /**
         * 根据客户名称模糊查询
         * @param custName
         * @return
         */
        List<Customer> findByCustNameLike(String custName);
    
        /**
         * 使用客户名称模糊匹配和客户所属行业精准匹配的查询
         */
        Customer findByCustNameLikeAndCustIndustry(String custName,String custIndustry);
    }

    测试:

    @RunWith(SpringJUnit4ClassRunner.class)
    @ContextConfiguration(locations = "classpath:applicationContext.xml")
    public class JpqlTest {
        /**
         * JPA方法命名规则查询
         */
    
        @Test
        public void testFindByCustName() {
            Customer c = customerDao.findByCustName("小明");
            System.out.println(c);
        }
    
        @Test
        public void testFindByCustNameLike() {
            List<Customer> list = customerDao.findByCustNameLike("小%");
            for (Customer customer : list) {
                System.out.println(customer);
            }
        }
    
        @Test
        public void testFindByCustNameLikeAndCustIndustry() {
            Customer c = customerDao.findByCustNameLikeAndCustIndustry("小%", "教育");
            System.out.println(c);
        }
    }
  • 相关阅读:
    学习OpenGL:笔记八
    学习OpenGL:笔记七
    学习OpenGL:笔记六
    学习OpenGL:笔记五
    学习OpenGL:笔记四
    将Redis加入到Windows服务中
    Oracle设置列宽,行数
    word文档最上面有一条不是页眉的线
    myeclipse中配置自己安装的Tomcat
    SSM框架mapper.xml模糊查询语句
  • 原文地址:https://www.cnblogs.com/roadlandscape/p/12375059.html
Copyright © 2011-2022 走看看