Спящий режим и кириллица

Я хочу добавить русский текст в таблицу. Он отлично работает, если я буду использовать MySQL, но не Hibernate. Это заставляет мой текст выглядеть ????:

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();
    }

Что не так, товарищи?


person Tony    schedule 27.08.2013    source источник
comment
в основном это должно быть проблемой с вашей кодировкой символов. Так как вы тест пытаетесь вставить не дается. другого предположения нет.   -  person Naveen Babu    schedule 27.08.2013


Ответы (1)


В файле конфигурации 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 и поддержку кириллического текста.

person PA001    schedule 27.08.2013
comment
Хм, попробуйте изменить свойство URL-адреса подключения, включив параметр characterEncoding: <property name="hibernate.connection.url">jdbc:mysql://localhost/DB_NAME_HERE?characterEncoding=UTF-8</property> - person PA001; 28.08.2013