Java Hibernate MySQLñ;等于n

Java Hibernate MySQLñ;等于n,java,mysql,hibernate,utf,Java,Mysql,Hibernate,Utf,我有一个表,其中包含一些我们正在使用的varchars列Hibernate,MySql 当MySQL将N与ini进行比较和匹配时,问题就出现了。我在MySQL的其他中找到了类似的解决方案 SELECT FIRST_NAME FROM CONTACT WHERE FIRST_NAME LIKE '%ñ%' COLLATE utf8_spanish_ci 及 我想知道如何在Hibernate中通过查询实现这一点。我的意思是编写一个不匹配N和ini的条件,而不在引擎MySQL上执行太多操作。这

我有一个表,其中包含一些我们正在使用的varchars列
Hibernate,MySql

当MySQL将
N
ini
进行比较和匹配时,问题就出现了。我在
MySQL
的其他
中找到了类似的解决方案

SELECT FIRST_NAME 
FROM CONTACT 
WHERE FIRST_NAME LIKE '%ñ%' COLLATE utf8_spanish_ci 

我想知道如何在
Hibernate
中通过查询实现这一点。我的意思是编写一个不匹配
N
ini
的条件,而不在引擎
MySQL
上执行太多操作。这是否可能像在
Hibernate
中使用
BINARY
COLLATE
作为参数或任何其他方法一样解决方法

更新

我尝试过这个代码

private final Student test(final int id)
{
    return (Student)currentSession().createCriteria(Student.class)
          .add(Restrictions.idEq(id))
          .add(Restrictions.ilike("c01","n",MatchMode.ANYWHERE))
          .uniqueResult();    
}
我的表中有一行id=26,c01='ñlk'

我在
hibernate.cfg

 <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/database?connectionCollation=utf8_spanish_ci</property>    
但仍在取得成果

results: ID: 26 c01: ñlk
我不希望返回结果,但仍在考虑
N
ini
相等

我做错了什么

非常感谢,非常感谢你的帮助


致以问候。

您可以尝试在jdbc连接级别设置排序规则。 在定义连接url的位置:

jdbc:mysql://[host:port]/[database][?propertyName1][=propertyValue1]

尝试此属性:ConnectionCalation=utf8\u西班牙语\u ci


我希望对您有所帮助。

我会尝试一下,我将它标记为已解决。谢谢。@chiperortiz我在MYSQL数据库中测试了它,但它没有用:(我认为唯一的方法是为选择添加排序规则。)
    final Student student = clazz.test(26);
    System.out.println("results: "+(student==null?"NULO":("ID: "+student.getId()+" c01: "+student.getC01())));
results: ID: 26 c01: ñlk