码迷,mamicode.com
首页 > 编程语言 > 详细

Spring Data JPA学习笔记

时间:2015-04-23 09:27:55      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:

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

技术分享

Spring Data JPA学习笔记

标签:

原文地址:http://www.cnblogs.com/warwolf/p/4449327.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!