ここで説明されているように、具体的なクラスごとのテーブルを参照しています:具体的なクラスごとのテーブル
9.1.6 の例に従って、CashPayment と CreditCardPayment があり、両方のスーパークラスが抽象Payment クラスであるとします。
「具象クラスごとのテーブル」タイプのマッピングを使用している場合、CASH_PAYMENT と CREDIT_PAYMENT の 2 つのテーブルがあり、PAYMENT テーブルはありません。それはすべて問題ありません。
ただし、支払い (現金または CC) への参照/プロパティを含む Xyz という別のエンティティ タイプを作成するにはどうすればよいですか? Java の観点からは問題ありません: Xyz.pamentType ですが、HBM/注釈でこれを構成するにはどうすればよいですか? XYZ テーブルはどのようになりますか?
PAYMENT_ID 列があるかもしれませんが、参照するテーブルが 2 つある可能性があるため、明らかに外部キーにすることはできません。XYZ には、支払いの種類を示すために何らかの追加の列が必要になると思います。
それとも、Hibernate は ID を使用して両方のテーブルを結合し、Xyz のインスタンスを読み取るたびに正しいタイプを見つけますか?
ちなみに、これが悪いアプローチであることはわかっています。もっと単純な代替手段を使用できますが、(代替手段ではなく) 答えが役立つので、質問を単純化しました。ありがとう!