jpa分页不起作用

时间:2014-03-01 23:32:52

标签: jpa pagination

我正试图用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();
    }
}

寻求帮助

0 个答案:

没有答案