3

新しいプロジェクトにはJPAを使用しています。弁別子を持つ継承関係があります。

スーパークラス テーブルから識別子フィールドを削除しようとしていますが、eclipselink を使用してこれを達成する方法がわかりません。これは休止状態で可能であることを知っていますが、eclipselinkでこれを達成する方法を知っている人はいますか?

なぜこれを達成したいのか疑問に思われるかもしれません (ディスクリミネーターを使用すると、他のテーブルの存在チェックが不要になるため、ディスクリミネーターを使用する方が高速であることはわかっています)。これは、次の実装を試みているためです。と答え)。

4

1 に答える 1

3

これがあなたの意図したとおりに機能するとは思えません。ID 値が 1 の Organization を照会すると、返されるエンティティは Organization、Customer、または Supplier です。Java では、少なくとも継承を設定した方法では、型を一度に 3 つすべてにすることはできません。組織はサプライヤーでも顧客でもなくても存在できるため、継承は私には意味がありません。

これらの 3 つのテーブルは、異なるエンティティを表す必要があります。組織は、顧客指定および/またはサプライヤー指定を持つことができます。

于 2012-08-13T15:12:00.417 に答える