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

时间:2014-07-11 12:06:08

标签: java sql hibernate encoding

我遇到了与法语字符比较的问题。在现有代码中使用具有5个连接并使用SQL函数的视图,以转换法语字符进行比较。有什么方法可以最大限度地减少这种情况。

我的踪迹。

  1. 我有一个名为'ANDRÉ'的名称,必须作为JSP页面的输入提供。

  2. 然后出现了SQL函数,将输入从法语转换为英语。该函数以这样的方式编写,即以小写'andre'返回编码字符串。

  3. 现在使用此结果,搜索具有5个连接的视图的条件。

  4. 有没有其他方法可以将字符串编码或转换成小写字母进行比较???

    请帮忙..

2 个答案:

答案 0 :(得分:0)

类似这样的事情

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

答案 1 :(得分:0)

如果你需要删除重音字符并小写字符串进行比较,你可能会走错路。您应该检查数据库中使用的排序规则。对于法语字符,我建议latin1用于MySQL,SQL_Latin1_General_CP1_CI_AI用于SQL Server。

基本上collation决定了事物的排序和比较方式。使用正确的整理“André”将与“Andre”相同,甚至“ANDRE”也不会与输入字符串混淆。