默认情况下会生成MyISAM表。我不想让它生成一个DDL脚本然后编辑,如果我可以避免它。我还想避免更改MySQL安装的默认表类型,除非我可以为在线一个数据库执行此操作。有什么想法吗?
答案 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)
在EclipseLink 2.2中添加了对此的支持,
答案 2 :(得分:1)
在EclipseLink 2.4中:
eclipselink.ddl.default-table-suffix
不行。
在v2.4中,你必须使用:
eclipselink.ddl-generation.table-creation-suffix