2009-07-23 16 views
5

esto es mi hibernate.hbm.xml y utilizo MySQLProblema con UTF-8 en Crear esquema por Hibernate

<?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"> 
<hibernate-configuration> 
    <session-factory> 

     <property name="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property> 
     <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> 
     <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/dbName?autoReconnect=true&amp;useUnicode=true&amp;characterEncoding=UTF-8</property> 
     <property name="hibernate.connection.username">root</property> 
     <property name="hibernate.connection.password">******</property> 

     <property name="hbm2ddl.auto">update</property> 
     <property name="hibernate.connection.useUnicode">true</property> 
     <property name="hibernate.connection.characterEncoding">UTF-8</property> 


     <property name="show_sql">true</property> 
     <property name="format_sql">true</property> 
     <property name="hibernate.use_sql_comments">true</property> 
     <property name="current_session_context_class">thread</property> 

     <!-- configuration pool via c3p0--> 
     <property name="c3p0.acquire_increment">1</property> 
     <property name="c3p0.idle_test_period">100</property> <!-- seconds --> 
     <property name="c3p0.max_size">100</property> 
     <property name="c3p0.max_statements">0</property> 
     <property name="c3p0.min_size">10</property> 
     <property name="c3p0.timeout">100</property> <!-- seconds --> 
     <!-- DEPRECATED very expensive property name="c3p0.validate>--> 


    </session-factory> 
</hibernate-configuration> 

cuando corro mi programa para la primera vez que se crea la tabla en la base de datos pero mi problema es el Charset todavía es latin1_swedish_ci (latín) y no es utf8, ¿qué debo cambiar en la configuración de hibernate.hbm.xml?

+0

Qué charset qué se refiere? MySQL conoce al menos cuatro de ellos: conjunto de caracteres del servidor, conjunto de caracteres Db, conjunto de caracteres del cliente y conjunto de caracteres Conn. –

+0

juego de caracteres del servidor y juego de caracteres db – Am1rr3zA

Respuesta

0

El ajuste UTF-8 se refiere a la forma en que Hibernate configura sus conexiones de tiempo de ejecución a la base de datos. Supongo que no tiene ningún efecto en las cosas de creación de esquema, que en realidad es una parte separada de Hibernate.

Me parece que las cosas auto-DDL solo son realmente útiles para generar una puñalada inicial en el esquema. Siempre tomo ese DDL y lo modifico para que sea exactamente lo que quiero.

+0

¿Puedes explicarme más sobre auto DDL y cómo debo usarlo? – Am1rr3zA

+0

y por qué hibernate unserstand tht ¿Deseo crear el esquema de InnoDB? coz defualt era MyISAM, pero cuando uso org.hibernate.dialect.MySQL5InnoDBDialect , ¡lo cambio a InnoDB! – Am1rr3zA

+0

Me refiero a la configuración hbm2ddl.auto que está utilizando en su configuración. – skaffman

3

que resuelven este problema estableciendo character-set-server opción en my.cnf:

[mysqld] 
character-set-server=utf8 
Cuestiones relacionadas