単純なJavaSwingアプリケーションでEclipseLink(2.4.0)およびsqlite3.7.2とともにJPA2.0を使用したいと思います。
私が最初に遭遇したのは、EclipseLinkがsqliteをサポートしていないということです。出力は次のとおりです。
[EL情報]:2012-09-18 18:05:42.246--ServerSession(31125695)--EclipseLink、バージョン:Eclipse PersistenceServices-2.4.0.v20120608-r11652
[EL情報]:接続:2012-09-18 18:05:42.352--ベンダー名[SQLite3]のプラットフォームを検出できません。デフォルトは[org.eclipse.persistence.platform.database.DatabasePlatform]です。使用されているデータベースダイアレクトが、使用しているデータベースと一致しない場合があります。プロパティeclipselink.platform.class.nameを使用してプラットフォームを明示的に指定してください。
ただし、構成はほぼ正常に機能しているように思われます。
しかし、関連するエンティティ(@ManyToOneなど)を持つモデルがある場合、テーブルを自動的に作成することはできません。
[EL警告]:2012-09-18 18:05:42.629--ServerSession(31125695)--例外[EclipseLink-4002](Eclipse Persistence Services-2.4.0.v20120608-r11652):org.eclipse.persistence.exceptions .DatabaseException内部例外:java.sql.SQLException:[SQLITE_ERROR] SQLエラーまたはデータベースがありません(「CONSTRAINT」の近く:構文エラー)エラーコード:0
呼び出し:ALTER TABLE blub ADD CONSTRAINT FK_blub_customer_id FOREIGN KEY(customer_id)REFERENCES customer(customer_id)
クエリ:DataModifyQuery(sql = "ALTER TABLE blub ADD CONSTRAINT FK_blub_customer_id FOREIGN KEY(customer_id)REFERENCES customer(customer_id)")
ご覧のとおり、外部キー制約の追加作成はsqliteではサポートされていません。
問題を解決する方法を知っていますか?
よろしくお願いします