什么可能导致CriteriaQuery
orderBy
方法停止工作?
以下是具体实现:
OpenJPAEntityManager kem = OpenJPAPersistence.cast(entityManager());
kem.getFetchPlan().clearFetchGroups();
kem.getFetchPlan().addFetchGroup("order_search");
CriteriaBuilder builder = kem.getCriteriaBuilder();
CriteriaQuery<Order> query = builder.createQuery(Order.class);
Root<Order> order = query.from(Order.class);
query.select(order);
Predicate main_condition = buildWhereClause(builder, query, order, target_states, orderDate_from, orderDate_to, dueDate_from, dueDate_to, username);
query.where(main_condition);
query.orderBy(builder.desc(order.get("orderDate")));
TypedQuery<Order> q = entityManager().createQuery(query);
if (firstResult != 0)
q.setFirstResult(firstResult);
if (maxResults != 0)
q.setMaxResults(maxResults);
有了分页,当有15条记录,我们希望每页5条记录时,它应该是:
-page1- 1 2 3 4 5 -page2- 6 7 8 9 10 -page3- 11 12 13 14 15
但现在我们得到的是
-page1- 1 2 3 4 5 -page2- 6 7 8 9 10 -page3- 5 4 3 2 1
最后一页总是与第一页的顺序相反,这是怎么回事?
钉它,不是我自己,这个post http://openjpa.208410.n2.nabble.com/OpenJPA-1-2-2-setFirstResult-setMaxResults-not-working-for-ORACLE-11g-td6500387.html很有帮助。我也做了同样的事情,现在它运行起来就像一个魅力。基本上需要按标准将主键添加到订单中,否则分页完全混乱。
花了4个小时,解决方案如此简单又棘手。适用于 OpenJPA 2.2.2 和 Oracle 11g,我想这是自那篇文章的 OpenJPA 1.2 以来的一个持续的技巧。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)