mysql - Hibernate 创建模式中的 UTF-8 问题

标签 mysql hibernate unicode character-encoding

这是我的 hibernate.hbm.xml 我使用 MySQL

<?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>

当我第一次运行我的程序时,它会在数据库中创建表,但我的问题是字符集仍然是 latin1_swedish_ci(拉丁语),而不是 utf8 我应该在 hibernate.hbm.xml 设置中更改什么?

最佳答案

我通过在 my.cnf 中设置 character-set-server 选项解决了这个问题:

[mysqld]
character-set-server=utf8

关于mysql - Hibernate 创建模式中的 UTF-8 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1172849/

相关文章:

javascript - 在 Javascript 中以编程方式转换和存储 unicode 字符串

php - mysql时隙查询,包含开始时间和结束时间以及运行时间

MySQL - 无法使用 count(*) 进行左外连接以返回 count = 0 的项目

mysql - 使用 Hibernate 启用或禁用外键索引

python - 我如何解码这个表示为 unicode 的字符串?

php - PHP中的多字节修剪?

php - 跨多列搜索

php - 从多个表中计算不同的用户 ID

java - 如何使用 JPA - EntityGraph 只加载实体@Basic 属性的一个子集?

java - @OneToMany Map 默默删除 Map 的键