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);
}
查询结果: 成功
最累的时候,家人是你最好的归宿。
