如何让EclipseLink创建MySQL InnoDB表?

时间:2010-08-12 07:01:35

标签: java mysql orm jpa eclipselink

默认情况下会生成MyISAM表。我不想让它生成一个DDL脚本然后编辑,如果我可以避免它。我还想避免更改MySQL安装的默认表类型,除非我可以为在线一个数据库执行此操作。有什么想法吗?

3 个答案:

答案 0 :(得分:4)

除了编辑脚本或在MySQL中设置默认类型外,看不到任何其他方法。

为此记录了一个错误,请投票支持,

https://bugs.eclipse.org/bugs/show_bug.cgi?id=214519

EclipseLink支持在其TableDefinition setCreationSuffix()中使用postFix创建表,例如engine = InnoDB,但不支持任何生成此方法的方法,并且不为默认表生成提供事件或平台挂钩(这将是非常有用)。

您可以自己使用EclipseLink DefaultTableGenerator在SessionCustomizer中自己生成表。您将调用generateDefaultTableCreator()然后循环其TableDefitions添加设置InnoDB后缀,然后告诉它创建表。所有类都在org.eclipse.persistence.tools.schemaframework包中。

答案 1 :(得分:1)

答案 2 :(得分:1)

在EclipseLink 2.4中:

eclipselink.ddl.default-table-suffix

不行。

在v2.4中,你必须使用:

eclipselink.ddl-generation.table-creation-suffix