Spring Data JPA使用
2015-10-08 16:42
706 查看
添加Maven依赖
<properties> <spring.data.version>1.9.0.RELEASE</spring.data.version> <hibernate.version>5.0.1.Final</hibernate.version> </properties> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-jpa</artifactId> <version>${spring.data.version}</version> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-entitymanager</artifactId> <version>${hibernate.version}</version> </dependency>
在Spring中配置Spring Data JPA
此处省略JPA及事务的配置<jpa:repositories base-package="com.tiamaes.gjds.das.repository" entity-manager-factory-ref="entityManagerFactory" transaction-manager-ref="transactionManager" repository-impl-postfix="Impl"/>
使用Spring Data JPA
要使用Spring Data JPA只需要创建一个接口并继承自JpaRepository即可。
public interface SystemUserRepository extends JpaRepository<TSystemUser, String> { }
测试
@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations={"classpath:applicationContext.xml"}) public class BaseSpringTestCase { } public class SystemUserRepositoryTest extends BaseSpringTestCase{ @Autowired private SystemUserRepository systemUserRepository; @Test public void testFindAll() { List<TSystemUser> list = this.systemUserRepository.findAll(); assertNotNull(list); } }
测试分页
@Test public void testFindByPageable(){ Pageable page = new PageRequest(1, 2); Page<TSystemUser> pageList = this.systemUserRepository.findAll(page); //获取查询结果 assertNotNull(pageList.getContent()); //获取总记录数 assertTrue(pageList.getTotalElements() > 0); //获取总页数 assertTrue(pageList.getTotalPages() > 0); }
要实现分页只需要调用
PageRequest有两个参数page和pageSize。这里的页码是从0开始的。
PageRequest(0, 10) 查询的是第1-10条记录。
PageRequest(1, 10) 查询的是第11-20条记录。
如果总记录数小于要查询的数据的开始行数,则Spring Data JPA会放弃执行查询数据的SQL。
比如表A有6条记录,使用PageRequest(1, 10)将查不到任何记录,因为开始位置是11,这时Spring只会执行查询总记录数的SQL语句,而不会执行查询数据的SQL语句。
相关文章推荐
- 利用spring 3.0+springMVC+dwr 3.0 实现一对一的无刷新聊天(一)
- Java基础知识强化之IO流笔记24:FileInputStream / FileOutputStream 复制文本文件案例2
- Java 集合系列01之 总体框架
- 韩顺平java 第29讲 swing介绍
- java中介者模式--第17弹
- Java动态代理原理及其简单应用
- java中lock与synchronized同步的解析
- 最常用的Eclipse快捷键
- Java-protected的使用范围
- Java 课后作业 加减乘除运算 消息框显示结果
- 关于java Servlet,Struts,springMVC 的线程安全问题
- 怎么样学习Java/ 如何学好Java
- 笔试题引发的思考--装箱与拆箱
- Java图形化编程中的键盘事件设计简介
- Java核心技术学习整理(二)
- Eclipse里的web项目名有红叉,但是底下的每一个文件都没有红叉解决方法
- 详解如何使用Java编写图形化的窗口
- Java日志性能那些事(转)
- 在eclipse中增加配置文件方式
- Java异常处理