Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 冬眠与特殊角色_Java_Database_Oracle_Hibernate - Fatal编程技术网

Java 冬眠与特殊角色

Java 冬眠与特殊角色,java,database,oracle,hibernate,Java,Database,Oracle,Hibernate,假设我有一个数据库和一个表,这个表只有一个名为“word”的字段和一些其他数据,还假设用户可以通过键入这个字段的内容来搜索数据。这张桌子上有很多带西班牙口音的单词 词例 阿西多 汽车 卡米翁 问题: 如果用户搜索“acido”或“ácido”单词,查询将返回“ácido”行。如何使用Hibernate实现这一点 编辑 我使用Oracle10g作为RDBMS和Hibernate命名查询 提前感谢Hibernate只需将搜索传递到数据库即可。如果您的数据库被设置为以不同的方式识别这些,那么休眠也将如

假设我有一个数据库和一个表,这个表只有一个名为“word”的字段和一些其他数据,还假设用户可以通过键入这个字段的内容来搜索数据。这张桌子上有很多带西班牙口音的单词

词例 阿西多

汽车

卡米翁

问题: 如果用户搜索“acido”或“ácido”单词,查询将返回“ácido”行。如何使用Hibernate实现这一点

编辑 我使用Oracle10g作为RDBMS和Hibernate命名查询


提前感谢

Hibernate只需将搜索传递到数据库即可。如果您的数据库被设置为以不同的方式识别这些,那么休眠也将如此


在SQL Server中,您可以为列(或表或数据库-由您选择)设置排序规则,使该数据不区分重音。怀疑其他DBMS中存在类似的机制,我认为这将是最好的方法。

最后,我在一个类似以下内容的命名查询中使用Oracle TRANSLATE函数:

  <query name="queryName">
  <![CDATA[
        FROM Table
        WHERE 
          upper(TRANSLATE(nivell_1,'ÀàÉÈéèÍíÓóÒòÚú','AaEEeeIiOoOoUu')) LIKE
          upper(TRANSLATE(nivell_1,'ÀàÉÈéèÍíÓóÒòÚú','AaEEeeIiOoOoUu'))
  ]]>         
  </query>

感谢您的回复,我想您所说的是Oracle特有的机制: