1

persistence.xmlに次のプロパティを設定しました。

<property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema(ForeignKeys=true)"/>

私が正しく理解していれば、これはOpenJPA MappingToolに、対応する管理対象エンティティーのテーブルが見つからない場合にデータベースに適切なテーブルを生成する必要があることを通知するものです。

私が理解できなかったのは、EntityManagerへの参照を取得した後にMappingToolが保持する列の順序を指定する方法があるかどうかです。

MappingDefaultsはそのようなプロパティを提供していません(少なくとも私はそれを見つけることができませんでした)。これを行う唯一の方法は、これをサポートするためにOpenJPAAPIの一部を再実装することです。

そのオプションは現在私たちにとって実行可能ではなく、列の順序を指定する方法についてのアイデアやガイドラインがあれば、それを求めます。

私たちの環境は、次のスタックで構成されています。

  • OpenJPA 2.0.1
  • JDK 1.6.23
  • 春3.0.5
  • Maven 2.2.1
  • IBM DB2 9.7 Express-C

また、Googleにそのような質問がほんの一握りしかないことに少し驚いています。

4

2 に答える 2

0

特定のテーブルの列の順序がアプリケーションにとって重要な場合は、SynchronizeMappingsを使用しないでください。

于 2011-03-30T14:40:02.097 に答える
0

同じスキーマに対して別の機会にマッピングツールを実行しても、列の順序が保証されないことを発見しました。私はIBMDB2も使用していますが、ここでは、すべてのインスタンスでテーブルがまったく同じように作成されていることを確認する必要があります。そのため、マッピングツールを使用してDDLスクリプトを一度生成し、データモデルに変更があった場合にのみ更新します。

于 2014-10-10T11:52:45.773 に答える