2011-12-29 10 views
3

MyISAMダイアレクトorg.hibernate.dialect.MySQLMyISAMDialectを使用して、MySQL 5.5データベースで3.6.9.Final休止状態のプロバイダを使用してJPA2に基づいてDDLファイルを自動生成します。MyISAMダイアレクトが間違ったDDLを生成する

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以降のバージョンで問題なく機能しました。この問題を解決するために私はどの休止状態のプロバイダを使用すべきですか?

答えて

3

壊れていますが、MySQLは廃止予定の "type ="のサポートを中止しました。 MyISAMの場合、Hibernateには実装されていません。 InnoDBには、別々の実装(MySQL5InnoDBDialect)があります。私はInnoDBはあなたのためのオプションではありません使用して推測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

あなたは自分でそれを実装、またはちょうどのような既存の実装を選択する必要がありますか?特にトランザクションの不足のため、MyISAMはJPAとうまく適合しません。

+0

これは、休止状態のための非常に簡単な修正であり、なぜこの変更に対応できないのか分かりませんでした。 – priya

関連する問題