3)JpaRepository: 继承 PagingAndSortingRepository,实现一组 JPA 规范相关的方法 自定义的 5)XxxxRepository 需要继承 JpaRepository,这样的 XxxxRepository 接口就具备了通用的数据访问控制层的能力。4)JpaSpecificationExecutor: 不属于Repository体系,实现一组 JPA Criteria 查询相关的方法
7.SpringData方法定义规范在SpringData的Repository 接口中的方法必须满足一定的规则。
按照 Spring Data 的规范,查询方法以 find | read | get 开头,涉及条件查询时,条件的属性用条件关键字连接,要注意的是:条件属性以首字母大写。
public Employee getByLastNameAndGender(String lastName,String gender)这个接口中需要处理的类型Employee,在这个类中必须有个属性叫做LastName与gender,And是条件连接
条件的属性名称与个数要与参数的位置与个数一一对应
8.@Query注解使用这个注解可以摆脱在Reponsitory接口中方法命名的规范,我们将查询的语句直接生命在方法上
1)索引查询中 “?X” 个数需要与方法定义的参数个数相一致,并且顺序也要一致
@Query("select d from Dept d where dno = ?1 and deptName = ?2") public Dept testQuery(Integer dno,String deptName); 2)命名查询 @Query("select d from Dept d where dno = :dno and deptName = :deptName") public Dept testQuery(@Param("dno")Integer dno,@Param("deptName")String deptName); 9.本地SQL查询在注解@Query中有个参数nativeQuery将他设置为true即可开启本地SQL查询
@Query(value="select * from tal_dept",nativeQuery=true) public List<Dept> testQuery3(); 注意事项前面我们基本都是在执行查询操作,@Query也可以做修改和删除的操作,但不支持增加。执行修改操作时,必须使用@Modifying注解。
@Modifyingjava @Query("UPDATE tal_dept set name = :name WHERE dno = :dno") public int updateTest(@Param("dno")Integer id,@Param("name")String name);