2013-08-27 107 views
3

我想在表格中添加一些俄文文本。它工作正常,如果我会使用MySQL,而不是休眠。 这使我的文字看起来????休眠和西里尔文

public void addHeadHunter(String city, Integer salary) { 

     Session session = null; 

     session = this.sessionFactory.getCurrentSession(); 
     Query query = session 
       .createSQLQuery(
         "INSERT INTO headhunter VALUES(NULL,:city,:salary,NULL)") 
       .setString("city", city).setInteger("salary", salary); 
     int updated = query.executeUpdate(); 
    } 

什么是错的,同志们?

+0

大多数情况下,它应该与您的字符编码问题。既然你测试你尝试插入没有给出。没有其他猜测。 –

回答

2

在Hibernate的配置文件,您需要添加这些属性:

<prop key="hibernate.connection.useUnicode">true</prop> 
<prop key="hibernate.connection.characterEncoding">UTF-8</prop> 
<prop key="hibernate.connection.charSet">UTF-8</prop> 

这应该允许西里尔文字使用UTF-8和支持。

+0

还是'?????' – Tony

+0

嗯,试着修改你的连接URL属性来包含characterEncoding选项:' jdbc:mysql:// localhost/DB_NAME_HERE?characterEncoding = UTF-8' – PA001