首页 > 解决方案 > Criteria API:查找字段中的第一个值

问题描述

我在表中有一个列,其中每个字段都可以有多个值。

例如,我在表中有以下值:

id | code 
---|-----------------
 1 |a, c, bc, ac1
 2 |ds, d, cda, aw2
 3 | a1, d, ccdd

结果我想得到的是同一张表,但按每个“代码”列中的第一个值升序排序:

id | code 
---|-----------------
 1 |a, c, bc, ac1
 3 | a1, d, ccdd
 2 |ds, d, cda, aw2

我需要从该列中获取第一个值,然后根据该第一个值对表格进行排序。有什么方法可以使用 Criteria API 来实现吗?我目前在字段中使用最小值,但想按第一个值排序。

Expression aggregateFuncExpr = cb.min(sortFieldExpression);

selectionList.add(aggregateFuncExpr);
cb.groupBy(cb.literal(1));

orderList.add(cb.asc(cb.literal(literal)));

标签: javapostgresqlcriteriahibernate-criteriacriteria-api

解决方案


推荐阅读