Hibernate 无法在播放2 Ebean中使用UTF-8编码保留大小大于某个数字的实体列表

Hibernate 无法在播放2 Ebean中使用UTF-8编码保留大小大于某个数字的实体列表,hibernate,jdbc,playframework-2.0,ebean,Hibernate,Jdbc,Playframework 2.0,Ebean,我试图以UTF-8编码持久化一个实体。我正在使用以下配置 db.default.driver = com.mysql.jdbc.Driver db.default.url = "jdbc:mysql://localhost:3306/db?characterEncoding=UTF-8" db.default.user = **** db.default.password = **** db.default.jndiName = DefaultDS 我的持久性xml就像 <persis

我试图以UTF-8编码持久化一个实体。我正在使用以下配置

db.default.driver = com.mysql.jdbc.Driver 
db.default.url = "jdbc:mysql://localhost:3306/db?characterEncoding=UTF-8"
db.default.user = ****
db.default.password = ****
db.default.jndiName = DefaultDS
我的持久性xml就像

<persistence-unit name="defaultPersistenceUnit" transaction-type="RESOURCE_LOCAL">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <non-jta-data-source>DefaultDS</non-jta-data-source>
    <properties>
        <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLInnoDBDialect"/>
        <property name="hibernate.connection.useUnicode" value="true" />
        <property name="hibernate.connection.characterEncoding" value="UTF-8" />
    </properties>
</persistence-unit>
当entityList.size大于某个特定数字时,例如15

但是,当我从db url文件中删除?characterEncoding=UTF-8部分时,一切都正常工作,但我无法以正确的编码保存中文字符串


我可以手动保存中文字符

如果数据库配置为以UTF-8编码存储数据,那么您根本不必配置Hibernate

Java字符串不需要编码。字节[]需要编码信息来解释如何读取字节

每当读取文件/套接字时,您需要知道编码,因为数据是一个字节接一个字节的,所以您必须提供解码提示

确保创建的表包含以下编码:

CREATE TABLE MyTable (
    ID             INT UNSIGNED AUTO_INCREMENT,       
    PRIMARY KEY(ID)
) ENGINE=InnoDB DEFAULT CHARSET=UTF8

你能手动将这些字符保存在数据库中吗?是的,我能手动保存中文字符
CREATE TABLE MyTable (
    ID             INT UNSIGNED AUTO_INCREMENT,       
    PRIMARY KEY(ID)
) ENGINE=InnoDB DEFAULT CHARSET=UTF8