代码之家  ›  专栏  ›  技术社区  ›  David Tinker

如何使用eclipseLink创建mysql innodb表?

  •  4
  • David Tinker  · 技术社区  · 16 年前

    它默认生成myisam表。我不想让它生成一个DDL脚本,然后编辑它,如果我可以避免它。我也希望避免更改MySQL安装的默认表类型,除非我可以对一个数据库进行联机更改。有什么想法吗?

    3 回复  |  直到 16 年前
        1
  •  4
  •   James    16 年前

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

    为此记录了一个错误,请投赞成票,

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

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

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

        3
  •  1
  •   Dzwiedziu-nkg    13 年前

    在EclipseLink 2.4中:

    eclipselink.ddl.default-table-suffix
    

    不工作。

    在2.4版中,您必须使用:

    eclipselink.ddl-generation.table-creation-suffix