spring data jpa : paging(jpa)
This commit is contained in:
@@ -54,4 +54,18 @@ public class MemberJpaRepository {
|
|||||||
.setParameter("username", username)
|
.setParameter("username", username)
|
||||||
.getResultList();
|
.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
|
@Test
|
||||||
public void testNamedQuery() {
|
void testNamedQuery() {
|
||||||
Member m1 = new Member("aaa", 10);
|
Member m1 = new Member("aaa", 10);
|
||||||
Member m2 = new Member("bbb", 20);
|
Member m2 = new Member("bbb", 20);
|
||||||
memberJpaRepository.save(m1);
|
memberJpaRepository.save(m1);
|
||||||
@@ -84,4 +84,26 @@ class MemberJpaRepositoryTest {
|
|||||||
|
|
||||||
assertEquals(m1, result.get(0));
|
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