spring data jpa : paging(jpa)
This commit is contained in:
@@ -54,4 +54,18 @@ public class MemberJpaRepository {
|
||||
.setParameter("username", username)
|
||||
.getResultList();
|
||||
}
|
||||
|
||||
public List<Member> findByPage(int age, int offset, int limit) {
|
||||
return em.createQuery("select m from Member m where m.age = :age order by m.username desc", Member.class)
|
||||
.setParameter("age", age)
|
||||
.setFirstResult(offset)
|
||||
.setMaxResults(limit)
|
||||
.getResultList();
|
||||
}
|
||||
|
||||
public long totalCount(int age) {
|
||||
return em.createQuery("select count(m) from Member m where m.age = :age", Long.class)
|
||||
.setParameter("age", age)
|
||||
.getSingleResult();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -74,7 +74,7 @@ class MemberJpaRepositoryTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testNamedQuery() {
|
||||
void testNamedQuery() {
|
||||
Member m1 = new Member("aaa", 10);
|
||||
Member m2 = new Member("bbb", 20);
|
||||
memberJpaRepository.save(m1);
|
||||
@@ -84,4 +84,26 @@ class MemberJpaRepositoryTest {
|
||||
|
||||
assertEquals(m1, result.get(0));
|
||||
}
|
||||
|
||||
@Test
|
||||
void paging() {
|
||||
// given
|
||||
memberJpaRepository.save(new Member("member1", 10));
|
||||
memberJpaRepository.save(new Member("member2", 10));
|
||||
memberJpaRepository.save(new Member("member3", 10));
|
||||
memberJpaRepository.save(new Member("member4", 10));
|
||||
memberJpaRepository.save(new Member("member5", 10));
|
||||
|
||||
int age = 10;
|
||||
int offset = 0;
|
||||
int limit = 3;
|
||||
|
||||
// when
|
||||
List<Member> members = memberJpaRepository.findByPage(age, offset, limit);
|
||||
long totalCount = memberJpaRepository.totalCount(age);
|
||||
|
||||
// then
|
||||
assertEquals(3, members.size());
|
||||
assertEquals(5, totalCount);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user