Java 冬眠与特殊角色
假设我有一个数据库和一个表,这个表只有一个名为“word”的字段和一些其他数据,还假设用户可以通过键入这个字段的内容来搜索数据。这张桌子上有很多带西班牙口音的单词 词例 阿西多 汽车 卡米翁 问题: 如果用户搜索“acido”或“ácido”单词,查询将返回“ácido”行。如何使用Hibernate实现这一点 编辑 我使用Oracle10g作为RDBMS和Hibernate命名查询Java 冬眠与特殊角色,java,database,oracle,hibernate,Java,Database,Oracle,Hibernate,假设我有一个数据库和一个表,这个表只有一个名为“word”的字段和一些其他数据,还假设用户可以通过键入这个字段的内容来搜索数据。这张桌子上有很多带西班牙口音的单词 词例 阿西多 汽车 卡米翁 问题: 如果用户搜索“acido”或“ácido”单词,查询将返回“ácido”行。如何使用Hibernate实现这一点 编辑 我使用Oracle10g作为RDBMS和Hibernate命名查询 提前感谢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特有的机制: