我正试图用eclipselink作为提供者来测试与jpa的分页。 我的问题是:每次收取新页面时,我们都可以使用相同的查询或创建新查询吗? 在这段代码中我使用相同的查询,但它不起作用,它收取第一页并停止。 这是代码:
EntityManager emOld = emfOld.createEntityManager();
Query query = emOld.createQuery("Select o from Order o order by o.id");
int pageSize = 500;
int firstResult = 0;
query.setFirstResult(firstResult);
query.setMaxResults(pageSize);
List<Order> orders = query.getResultList();
boolean done = false;
while (!done) {
if (orders.size() < pageSize) {
done = true;
}
EntityManager em = emf.createEntityManager();
em.getTransaction().begin();
for (Order order : orders) {
em.persist(order);
}
em.getTransaction().commit();
em.close();
firstResult = firstResult + pageSize;
query.setFirstResult(firstResult);
if (!done) {
orders = query.getResultList();
}
}
寻求帮助