Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > hibernate import.sql encoding


Автор: Hopeless 25.11.2010, 11:12
Почему hibernate вьіполняя скрипт import.sql ( import.sql сохранен в UTF-8) вставляет записи в таблицу TB_REGION базьі данньіх Oracle (NLS_CHARACTERSET=UTF-8) в неверной кодировке (тоесть, не в UTF-8) не смотря на то что если с помощью java кода (
Код


Region DEFULT_REGION = new Region();
DEFULT_REGION.setName("Кирилица");

regionDAO.save(DEFULT_REGION);
) записи вставляются в коректной кодировке? 

Содержимое hibernate.cfg.xml
Код

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

    <!-- Generated by MyEclipse Hibernate Tools.                   -->
<hibernate-configuration>

<session-factory>
    <property name="hbm2ddl.auto">create-drop</property>
    
    <property name="dialect">org.hibernate.dialect.Oracle10gDialect</property>
    <property name="connection.url">jdbc:oracle:thin:@192.168.10.36:1521:BIRD</property>
    <property name="connection.username">****</property>
    <property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
    <property name="max_fetch_depth">1</property>
    <property name="show_sql">true</property>
    <property name="connection.password">****</property>
    <property name="connection.useUnicode">true</property>
    <property name="connection.characterEncoding">UTF-8</property>

    <property name="connection.provider_class">
        org.hibernate.connection.C3P0ConnectionProvider
    </property>
    <!--
        pool via c3p0 which knows how to reconnect to server and does i
        nicely
    -->

    <property name="hibernate.c3p0.acquire_increment">3</property>
    <property name="hibernate.c3p0.idle_test_period">100</property>
    <!-- seconds -->
    <property name="hibernate.c3p0.max_size">20</property>
    <property name="hibernate.c3p0.max_statements">0</property>
    <property name="hibernate.c3p0.min_size">3</property>
    <property name="hibernate.c3p0.timeout">1000</property>
    <property name="hibernate.c3p0.preferredTestQuery">
        select 1;
    </property>
    <property name="hibernate.jdbc.batch_size">20</property>



    <mapping
        resource="com/bmssoft/maps/core/client/model/Region.hbm.xml" />
</session-factory>

</hibernate-configuration>


Содержимое import.sql сохраненое в UTF-8
Код

insert into TB_REGION (id, name) values(hibernate_sequence.nextval,'Кирилица');


Автор: intr 25.11.2010, 16:55
Конечно глупый вопрос, но java запускается с ключом "-Dfile.encoding=UTF-8"?

Автор: Hopeless 29.11.2010, 11:56
Спасибо, intr, дело действительно в -Dfile.encoding=UTF-8

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)