您的位置:首页 > 编程语言 > Java开发

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语句。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: