Java Hibernate查询比较中的法语字符问题

Java Hibernate查询比较中的法语字符问题,java,sql,hibernate,encoding,Java,Sql,Hibernate,Encoding,我有一个问题,那就是与法语字符的比较。在已经存在的代码中,使用具有5个联接的视图并使用SQL函数来转换法语字符以进行比较。有没有什么办法可以让我最小化这个 我的足迹 我有一个名为“ANDRÉ”的名字,它必须作为JSP页面的输入 然后是SQL函数,它将相应地将输入从法语转换为英语。函数的编写方式使其返回小写“andre”的编码字符串 现在,将此结果作为条件,针对具有5个联接的视图进行搜索 是否有其他方法将字符串编码或转换为小写以便比较 请帮帮忙。像这样的事 "from DataOrganizati

我有一个问题,那就是与法语字符的比较。在已经存在的代码中,使用具有5个联接的视图并使用SQL函数来转换法语字符以进行比较。有没有什么办法可以让我最小化这个

我的足迹

  • 我有一个名为“ANDRÉ”的名字,它必须作为JSP页面的输入

  • 然后是SQL函数,它将相应地将输入从法语转换为英语。函数的编写方式使其返回小写“andre”的编码字符串

  • 现在,将此结果作为条件,针对具有5个联接的视图进行搜索

  • 是否有其他方法将字符串编码或转换为小写以便比较

    请帮帮忙。

    像这样的事

    "from DataOrganization dataOrg where lower(dataOrg.poolName) like lower('%"+ poolName +"%')"
    

    如果需要删除重音字符和小写字符串以进行比较,则可能会走错方向。您应该检查您在数据库中使用的排序规则。对于法语字符,我建议MySQL使用
    latin1
    ,SQL Server使用
    SQL\u latin1\u General\u CP1\u CI\u AI


    基本上决定了事物排序和比较的方式。使用正确的排序规则,“André”将与“Andre”甚至“Andre”相同,而不会影响输入字符串。

    您可能可以在数据库端编辑排序规则。这会使“a”变成“a”等。如何编辑排序规则???应在何处指定??因为我的代码根据指定的条件使用动态构建的HQL。只需在搜索列列表和serach值之间放低一点,以上只是一个示例。这可能会降低性能,因为在比较之前,它会在每一行上应用分析函数。