0

eclipselink を使用してデータベースを分割したいと考えています。パフォーマンス上の理由から、1 つのテーブル (エンティティ A) をすべてのノードにレプリケートし、1 つのテーブル (エンティティ B) をすべてのノードでハッシュ パーティション化します。

すべての A は B エンティティと 1 対 1 の関係にあるため、eclipseLink は「A」テーブルの列に外部キー制約を作成します。分割メカニズムが異なるため、この制約は A の多くのエントリで失敗します。

現在、エンティティのプロパティは毎日変更される可能性があるため、テストと開発のために ddl 生成を見逃したくありません。

この特定の外部キーを作成しないようにEclipseリンクに指示することは可能ですか? すべての外部キー?

現在のテスト データベースはインメモリ hsqldb です。外部キー制約を無視するようにデータベースに指示することはできますか?

4

2 に答える 2

1

独自の DDL スクリプトを使用してテーブルを作成することも、独自のスクリプトまたはネイティブ SQL クエリを使用して制約を削除することもできます。

データベース プラットフォーム クラスをサブクラス化することによって (およびサブクラスで「eclipselink.target-database」を使用することによって)、すべての制約を無効にすることができます。

于 2012-09-24T14:13:16.817 に答える
0

外部キーがない場合、関係はありません。

bまたは、クラスでプロパティをマークして、JPA によって管理さAtransientないようにすることもできます。bこれは、適切な値を自分で取得する必要があることを意味します。

また、フィールドをbnull可能にして(JPAが関係をサポートnull=trueしている場合はわかりOne-to-Oneません)、何が起こるかを確認することもできます。

于 2012-09-20T20:50:48.617 に答える