spring data jpa : paging(jpa)

This commit is contained in:
haerong22
2021-09-01 00:57:38 +09:00
parent cbb91d32cb
commit db7f32fc2f
2 changed files with 37 additions and 1 deletions

View File

@@ -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();
}
}

View File

@@ -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);
}
}