1

我在我的应用程序中使用休眠搜索 3.3。

我的搜索表单有文本字段、下拉列表、列表框等。我必须对单词、数字和日期进行搜索。基本上是多字段搜索。

我的问题是我无法对带有单词内空格的单词执行搜索。

例如:列表框有一组允许多选的员工姓名。因此,在我的 Java 层中,我将获取数组中的值,例如 - [Ankita Murthy, Ahana Gupta, Archita Patel]
现在,我必须用逗号分隔这些名称,并将这些名称与数据库中的employee_name 列进行匹配并检索结果。由于字内空白,匹配失败。

我做了一些研究,发现我们可以改变分析器来实现这一点,但我无法理解。

还指导我更改分析器以使它们忽略大写/小写

4

1 回答 1

0

最好是使用析取来进行 OR,我喜欢避免敏感,并使用 MatchMode.ANYWHERE 在 DB 值中的任何位置查找值。

您可以尝试使用或不使用 MatchMode;但是,它还有各种其他类型,即开始、结束和精确。

Disjunction dis = Restrictions.disjunction();

dis.add(Restrictions.ilike("employee.name",value1,MatchMode.ANYWHERE);
....
criteria.add(dis);

看一下这个

于 2014-07-09T00:21:20.590 回答