1 使用原生的sql 语句(步骤:
1.1 dao接口中定义方法
1.2 在方法上添加@Query注解
1.3 在注解中添加原生的 sql语句和nativeQuery = true
dao接口代码:
/**
* JpaRepository需要注意的 继承后里面的泛型
* 第一个是实体类类型 第二个是该类主键的数据类型
*/
public interface CustomerDao extends JpaRepository<Customer,Long> {
//原生
@Query(value = "select * from cst_customer where cust_name like ?",nativeQuery = true)
List<Customer> findByNameLikeCustomer(String name);
}
测试代码:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext.xml")
public class SpringDataJpaTest {
@Autowired
private CustomerDao customerDao;
/*
原生方法 根据name模糊查询
*/
@Test
public void findByNameLikeCustomer(){
List<Customer> customerList = customerDao.findByNameLikeCustomer("%山%");
for (Customer customer : customerList) {
System.out.println(customer);
}
}
}
2 方法命名规则(重点,推荐使用:
通过一定规则定义一个方法 框架可以根据方法名生成一个SQL语句进行查询
规则:
2.1 方法应该使用findBy开头
2.2 查询某个字段findBy后跟实体类的属性名称</