有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

CriteriaBuilder查询中不区分java重音

我使用CriteriaBuilder和PredicateList来处理JPA并从数据库中提取信息,事实是它包含带有重音的数据,我需要进行搜索,即使我搜索时没有重音,我也会找到带有重音的单词。 例如: 数据库包含以下数据: “técnico a”的意思是 “tecnico b

在我输入“tec”的子句中,我需要显示这两个选项。我怎么能让他跳过口音呢?我需要的结果是:

tecnico a, tecnico b

我有这个密码:

predicatesList.add((builder.like(builder.lower(root.<String>get("descripcion")),
                '%' + (descripcion.toLowerCase().trim() + '%'))));

提前谢谢你


共 (1) 个答案

  1. # 1 楼答案

    重点是字符“é”和“e”是不同的。因此,如果由其中一个搜索,则无法同时找到这两个。这是我刚刚想到的一个想法。使您的表格包含两个字段进行描述。在“描述”中调用一个“描述”和另一个“标准化描述”,在“标准化描述”中存储原始值,并在其中用非重音字符替换所有重音字符。因此,在您的情况下,您的记录将如下所示:
    记录a:
    描述:'técnico a'
    规范化描述:“tecnico a” 记录b:
    描述:'tecnico b'
    规范化描述:“tecnico b”

    然后,如果需要按字段“normalized_description”进行搜索,如果需要按“description”进行特定值搜索