2013-09-30 46 views
4

当我启动我的应用程序时,eclipselink设置为自动删除并在数据库中创建表。我已经设置它来使用表创建后缀创建一个InnoDB引擎。不过,我希望文本编码为utf8_unicode_ci。我如何设置我的XML文件来实现这一点。现在,它默认为utf8_general_ci。Eclipselink自动创建utf8_unicode_ci

<?xml version="1.0" encoding="UTF-8" ?> 
<persistence xmlns:xsi="http://www.w3.org/2001/XMLSc...> 
    <persistence-unit name="Data"> 

    <class>com.core.objects.StandardObject</class> 

    <properties> 
    <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" /> 
    <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/data" /> 
    <property name="javax.persistence.jdbc.user" value="username" /> 
    <property name="javax.persistence.jdbc.password" value="password" /> 

    <!-- EclipseLink should create the database schema automatically --> 
    <property name="eclipselink.ddl-generation" value="drop-and-create-tables" /> 
    <property name="eclipselink.ddl-generation.output-mode" value="database" /> 
    <property name="eclipselink.ddl-generation.table-creation-suffix" value="engine=InnoDB " /> 
    </properties> 
    </persistence-unit> 
</persistence> 

回答

4

你已经问了这个问题已经有一段时间了,无论如何,如果有人想知道我发布这个答案的机会。

"jdbc:mysql://localhost:3306/data" 

更改 “javax.persistence.jdbc.url” 的属性值

"jdbc:mysql://localhost:3306/data?useUnicode=yes&amp;characterEncoding=UTF-8". 

这将使你的数据库支持unicode。
希望你有现在想通;)

0

时自动创建表中可以配置此参数:

<prop key=eclipselink.ddl-generation.table-creation-suffix>ENGINE=InnoDB DEFAULT CHARSET=utf8</prop>