Spring Data JPA概念 Spring Data JPA 是 Spring 基于 ORM思想、JPA 规范的基础上封装的一套JPA应用框架 特性极大简化了数据库访问层代码 实体类@Entity注解声明实体类 @Table配置实体与表的映射主键 : @Id //声明当前私有属性为主键@Column(name="xxx") //指定和表中某字段的映射关系@GeneratedValue(strategy=GenerationType.IDENTITY) //配置主键的生成策略 //JPA提供的四种标准用法为TABLE,SEQUENCE,IDENTITY,AUTO。编写符合Spring Data JPA规范的Dao层接口1.创建一个Dao层接口,并实现JpaRepository和JpaSpecificationExecutor2.提供相应的泛型public interface CustomerDao extends JpaRepository<Customer, Long>, JpaSpecificationExecutor<Customer> {}基本CRUD操作1.保存customerDao.save();2.根据id查询customer.findOne(主键id/实体对象)3.更新同14.删除customer.delete(主键id/实体对象)使用JPQL方式查询在继承spring Data JPA规范的接口中定义方法,注解中写JPQL语句 查询实例: @Query(value = "from Customer where custAddress like ?1") public Customer queryAddress(String address)通过使用 @Query 来执行一个更新操作,为此,我们需要在使用 @Query 的同时,用 @Modifying 来将该操作标识为修改查询,这样框架最终会生成一个更新的操作,而非查询
更新/新增实例: @Query(value = "update Customer set custPhone= ?1 where custName=?2") @Modifying() @Transactional @Rollback(value = false) public void updatePhone(String phone,String custName);注意:JPQL方式更新/新增方法,需要在@Modifying注解后加@Transactional注解, 加@Rollback注解阻止回滚 使用SQL语句查询查询实例: @Query(value = "select * from cst_customer",nativeQuery = true) public List<Customer> queryCustomerList();方法命名规则查询:法命名规则查询就是根据方法的名字,就能创建查询。只需要按照Spring Data JPA提供的方法命名规则定义方法的名称,就可以完成查询工作。 具体实现可以根据IDEA的只能提示
|