好吧,我正在使用CriteriaBuilder和PredicateList来处理JPA并从数据库中提取信息,事实是它包含带重音的数据,我需要进行搜索,即使我搜索没有重音,我也会找到口音也是。 例如: 该数据库包含以下数据: 'técnicoa'表示 ' tecnico b '。
在我输入' tec '的条款中,我需要两个选项才能显示。我怎么能让他跳过口音呢?我需要的结果是:
tecnico a, tecnico b
我有这段代码:
predicatesList.add((builder.like(builder.lower(root.<String>get("descripcion")),
'%' + (descripcion.toLowerCase().trim() + '%'))));
提前谢谢。
答案 0 :(得分:0)
关键是角色'é'和'e'是不同的。因此,如果他们中的一个搜索,你就找不到两者。这是我刚刚想到的一个想法。使您的表格包含两个字段以进行说明。在“描述”中调用一个“描述”和另一个“normilized_description”存储“normilized_description”中的原始值存储将用非重音符号替换所有重音字符的值。因此,在您的情况下,您的记录将如下所示:
记录a:
描述:'técnicoa'
normilized_description:'tecnico a'
记录b:
描述:'tecnico b'
normilized_description:'tecnico b'
然后,如果您需要搜索字段“normilized_description”并且如果您需要通过“说明”进行特定值搜索