当我启动我的应用程序时,eclipselink设置为自动删除并在数据库中创建表。我已将其设置为使用表创建后缀创建InnoDB引擎。但是,我希望文本编码为utf8_unicode_ci。如何设置我的xml文件来实现这一目标。现在,它默认为utf8_general_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>
答案 0 :(得分:4)
自从你提出这个问题已经有一段时间了,无论如何,如果有人想知道的话,我会偶然发布这个答案。
更改你的&#34; javax.persistence.jdbc.url&#34;来自
的属性值"jdbc:mysql://localhost:3306/data"
到
"jdbc:mysql://localhost:3306/data?useUnicode=yes&characterEncoding=UTF-8".
这将为您的数据库启用unicode支持 希望你现在已经想到了它;)
答案 1 :(得分:0)
当自动创建表时,您可以配置此参数:
<prop key=eclipselink.ddl-generation.table-creation-suffix>ENGINE=InnoDB DEFAULT CHARSET=utf8</prop>