MyISAM диалект генерирует неправильный DDL - PullRequest
3 голосов
/ 29 декабря 2011

Мы используем диалект MyISAM org.hibernate.dialect.MySQLMyISAMDialect для автоматической генерации файлов DDL на основе JPA2 с использованием 3.6.9.Final провайдера спящего режима для базы данных MySQL 5.5.

The create SQL file gets generated as 
CREATE TABLE t (i INT) type = MYISAM;
instead of
CREATE TABLE t (i INT) ENGINE = MYISAM;

, что приводит к сбою создания таблицы.

Примечание: это работало нормально в 5.1 и более поздних версиях.Какой провайдер hibernate я должен использовать, чтобы исправить это.

1 Ответ

3 голосов
/ 29 декабря 2011

Не работает, MySQL давно не поддерживает устаревший тип =.В случае MyISAM рабочая реализация не включена в Hibernate.Для InnoDB есть отдельная реализация (MySQL5InnoDBDialect).

Вы должны реализовать это самостоятельно или просто выбрать существующую реализацию, например: http://code.google.com/p/snofyre/source/browse/trunk/snomed-osgi/uk.nhs.cfh.dsp.snomed.persistence/src/main/java/uk/nhs/cfh/dsp/snomed/persistence/orm/MySQL5MyISAMDialect.java

Я полагаю, использование InnoDB не подходит для вас?Особенно из-за отсутствия транзакций, MyISAM плохо сочетается с JPA.

...