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);
        }
    }
  • 相关阅读:
    移动项目开发笔记(禁止一个按钮在服务器事件处理完成前连续点击按钮)
    网页设计div+css之id与class使用原则
    Windows Media Encode 9简介及SDK
    酒桌上的规矩,社会的潜规则
    实现最小宽度的几种方法及CSS Expression
    Css的zindex属性与Flash动画层叠需注意
    asp.net很有用的字符串操作类
    生活中的几种心态
    Silverlight监测工具:Silverlight Spy
    silverlight为控件注册属性
  • 原文地址:https://www.cnblogs.com/roadlandscape/p/12375059.html
Copyright © 2011-2022 走看看