Spring Data是一个用于简化数据库访问,并支持云服务的开源框架,其主要目标是使得对数据的访问变得方便快捷。可以在几乎不用写实现的情况下,实现对数据的访问和操作。除了CRUD外,还包括如分页、排序等一些常用的功能。
Spring Data JPA提供的接口:
1:Repository:最顶层的接口,是一个空的接口,目的是为了统一所有Repository的类型,且能让组件扫描的时候自动识别。
2:CrudRepository :是Repository的子接口,提供CRUD的功能。
3:PagingAndSortingRepository:是CrudRepository的子接口,添加分页和排序的功能。
4:JpaRepository:是PagingAndSortingRepository的子接口,增加了一些实用的功能,比如:批量操作等。
5:JpaSpecificationExecutor:用来做负责查询的接口。
6:Specification:是Spring Data JPA提供的一个查询规范,要做复杂的查询,只需围绕这个规范来设置查询条件即可。
Example:
public interface UserRepository extends JpaRepository<UserModel, Long>{}
Page<UserModel> p = ur.findAll(new PageRequest(0,2,new Sort(new Order(Direction. DESC,"uuid"))));
Page<UserModel> findByName(String name, Pageable pageable);
List<UserModel> findByName(String name, Sort sort);
@Query(value="select o from UserModel o where o.name like %:nn")
public List<UserModel> findByUuidOrAge(@Param("nn") String name);
[注意:1:方法的返回值应该是int,表示更新语句所影响的行数;2:在调用的地方必须加事务,没有事务不能正常执行]
@Modifying
@Transaction
@Query(value="update UserModel o set o.name=:newName where o.name like %:nn")
public int findByUuidOrAge(@Param("nn") String name,@Param("newName") String newName);
资源地址: http://si sh uo k.com/forum/blogPost/list/7000.html