【发布时间】:2015-09-25 16:25:34
【问题描述】:
我需要发送一个查询来检索具有特定字符组的值,如下所示:
假设我对“XX”感兴趣,因此它应该搜索其值以“XX”开头或具有“XX”(空格 XX)的任何字段。例如XXCDEF、PD XXRF 和CMKJIEK XX 是有效结果。
我有以下查询
返回正确的结果,但我需要对它们进行排序
在某种程度上,它首先返回那些以 XX 开头的结果,然后返回其他结果。如下:
XXABCD
XXPLER
XXRFKF
AB XXAB
CD XXCD
ZZ XXOI
POLO XX
代码
Criteria criteria = session.createCriteria(Name.class, "name")
.add(Restrictions.disjunction()
.add(Restrictions.ilike("name.fname", fname + "%"))
.add(Restrictions.ilike("name.fname", "%" + " " + fname + "%"))
)
.setProjection(Projections.property("name.fname").as("fname"));
List<String> names = (List<String>) criteria.list();
【问题讨论】:
-
我不确定第 4 行到第 7 行的顺序是什么?
-
@Jegg 我应该显示以 XX 开头的字符串组。其余的(第 4 行到第 7 行)可以是中间有 XX(空格 XX)的那些,然后是末尾有 XX(空格 XX)的那些,另一种选择是在第 4 到第 7 行应用字母顺序。
-
检索结果后为什么不在java中对它们进行排序?
-
@SeanF 这将是一个巨大的内存负载,除非您知道最佳解决方案
标签: java hibernate hibernate-criteria