2

CayenneEntityManagerを使用してオブジェクトをデータベースに永続化しようとしています。残念ながら、次のエラーが発生します。

org.apache.cayenne.CayenneRuntimeException: [v.3.0 Apr 26 2010 09:59:17] Commit Exception

Caused by: com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Table 'myDatabase.auto_pk_support' doesn't exist

この問題をどのように解決できるか考えていますか?ありがとう。

4

1 に答える 1

4

エラーが発生した場合は、Cayenne Modelerから「デフォルト」の「PK生成戦略」を選択しているように見えます(DBエンティティをクリックすると、そのオプションの付いたコモボックスが表示されます)。これは、Cayenneが、入力された「auto_pk_support」テーブルがスキーマに存在することを期待していることを意味します(主キーを生成および追跡できるようにするため)。

Cayenne Modelerは、このテーブルとコンテンツを生成できます。[ツール]メニューから[DBスキーマの生成]を選択し、適切な接続を選択し、次のダイアログから[PKサポートの作成]チェックボックスのみを選択します。-必要なSQLが表示されます。生成します。コピーしてお気に入りのSQLツールに貼り付けるか、CayenneModelerに実行させます。

MySQLを使用しているので、もちろん他のPK生成オプションもあります(上記はクラシック/デフォルトのオプションであり、どのデータベースでも機能しますが、追加のテーブルが必要です)。

上記のすべての項目が非常によく説明されているので、カイエンモデラーのドキュメントを参照するか、カイエンのドキュメント全体を参照することをお勧めします(非常に優れているため)。

于 2010-07-08T08:38:15.850 に答える