【发布时间】:2019-09-12 09:26:59
【问题描述】:
是否可以通过在 Java 中使用条件查询或 jpql 来执行我的自定义订单?在我的表中,我有一个列 - 数字类型(目前,此列包括诸如1、2、3、5、10 等数字)。我想按2、5、1、10、3 的顺序对结果进行排序。
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<MyEntity> cq = cb.createQuery(MyEntity.class);
Root<MyEntity> root = cq.from(MyEntity.class);
cq.select(root);
cq.where(cb.equal(root.get("someMyFields"), "myExpectedFieldValue"));
cq.orderBy(cb.asc(root.get("myNumberField"))); // how can I sort result in this order 2, 5, 1, 10, 3?
TypedQuery<MyEntity> query = em.createQuery(cq);
query.setFirstResult(0);
query.setMaxResults(200);
return query.getResultList();
我该怎么做?
【问题讨论】:
-
有什么逻辑?不解释就有点随意了
-
无论有什么逻辑,方法 cb.asc() 都接受一个表达式,所以如果你在 `cb.asc()" 中实现你自己的逻辑,你应该能够完成你所要求的对于
-
在前端,这些数字被赋值给字符串值(例如:2 - 'A', 5-'B', 1-'C', 10-'D', 3 -'D'。我只想按字母顺序对这些值进行排序。
-
你能举个例子吗?