多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
~~~ package net.youworker.repository; import net.youworker.domain.Customer; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; import org.springframework.data.jpa.repository.Modifying; import org.springframework.data.jpa.repository.Query; import java.util.List; /** * 符合 SpringDataJpa的dao层接口规范 * JpaRepository<操作的实体类类型,实体类中主键属性的类型> * 封装了基本的CRUD操作 * JpaSpecificationExecutor<操作的实体类类型> * 封装了复杂查询(如分页等) * * @author: hcf * @qq: 46914685 * @email: 46914685@qq.com * @date: 2020-01-07 10:47 */ public interface CustomerRepository extends JpaRepository<Customer, Long>, JpaSpecificationExecutor<Customer> { /** * 根据客户名称查询客户 * 使用jpql的形式查询 * jpql: from Customer wher custName = ? * 配置jpql语句,使用@Query注解 */ @Query(value = "from Customer where custName = ?1") public Customer findByName(String custName); /** * 根据客户名称和id客户id查询客户 * jpql: from Customer where custName=?1 and custId=?2 * 对于多个占位符参数 * 赋值的时候,默认的情况下,占位符的位置需要和方法参数中的位置保持一致 * 可以指定点位符参数的位置 * ?+索引的方式,指定此占位符的取值来源 */ @Query("from Customer where custName=?1 and custId=?2") public Customer findByNameAndId(String name, Long id); /** * 使用jpql完成更新操作 * 根据id更新客户的名称 * <p> * sql: update cst_customer set cust_name =? where cust_id = ? * jpql: update Customer set custName =?2 where custId=?1 * * @Query 代表的是进行查询 * * @Modifying 声明此方法是用来进行更新操作 * 当前执行的是一个更新操作 */ @Query("update Customer set custName =?2 where custId=?1") @Modifying public void updateCustName(long id, String name); /** * 使用原生sql操作 * 查询全部的客户 * sql: select * from cst_customer; * 使用@Query 配置sql查询 * value: sql语句 * nativeQuery: 查询方式 * true: sql 查询 * false: jpql 查询 */ @Query(value = "select * from cst_customer",nativeQuery = true) // public List<Object []>findBySQL(); public List<Customer>findBySQL(); } ~~~