Как я могу получить EclipseLink для создания таблиц MySQL InnoDB? - PullRequest
4 голосов
/ 12 августа 2010

По умолчанию генерирует таблицы MyISAM.Я не хочу, чтобы он генерировал сценарий DDL, а затем редактировал его, если я могу избежать этого.Я также хотел бы избежать изменения типа таблицы по умолчанию для моей установки MySQL, если я не могу сделать это для одной базы данных в режиме онлайн.Есть идеи?

Ответы [ 3 ]

4 голосов
/ 12 августа 2010

Не вижу другого способа, кроме редактирования скриптов или установки типа по умолчанию в MySQL.

Для этого есть ошибка, пожалуйста, проголосуйте за нее,

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

EclipseLink поддерживает создание таблиц с postFix, например, engine = InnoDB, в своем методе TableDefinition setCreationSuffix (), но не поддерживает какой-либо способ его генерации и не предоставляет событие или ловушку платформы для генерации таблицы по умолчанию (которая будет очень полезно).

Вы можете использовать EclipseLink DefaultTableGenerator самостоятельно для создания своих таблиц в SessionCustomizer. Вы бы вызвали generateDefaultTableCreator (), затем перебрать его TableDefitions, добавить установленный суффикс InnoDB, а затем сказать ему создать таблицы. Все классы находятся в пакете org.eclipse.persistence.tools.schemaframework.

1 голос
/ 30 апреля 2013

В EclipseLink 2.4:

eclipselink.ddl.default-table-suffix

не работает.

В версии 2.4 вы должны использовать:

eclipselink.ddl-generation.table-creation-suffix
1 голос
/ 18 мая 2011

Поддержка была добавлена ​​для этого в EclipseLink 2.2,

http://wiki.eclipse.org/EclipseLink/UserGuide/JPA/Advanced_JPA_Development/Schema_Generation/Appending_strings_to_CREATE_TABLE_statements

...