1対多の住所や連絡先など、他のいくつかのエンティティと、いくつかのフィールド(名前、年齢など)で構成される従業員エンティティがあるとします。このエンティティをマッピングして問題なく使用し、各部分を「Employee」、「EmployeeAddresses」、および「EmployeeContacts」テーブルに保存します。
ただし、この従業員の情報のほとんどすべてを大規模な計算に使用し、同じAddressオブジェクトリストとContactオブジェクトリストで構成される個別の「EmployeeInput」オブジェクトを用意しています(つまり、EmployeeオブジェクトとEmployeeInputsオブジェクトの両方にAddressエンティティとContactエンティティのリストがあります)。後で監査するために計算を実行するときに、この情報を保存する必要があります。このEmployeeInputエンティティをデータベースの「EmployeeInput」テーブルに保存します。
私たちが直面している問題は、住所リストと連絡先リストをどのように保存するかです。それらを「EmployeeInputAddresses」や「EmployeeInputContacts」のようなものに固定したいのですが、AddressエンティティとContactエンティティはすでにそれぞれ「EmployeeAddresses」と「EmployeeContacts」にマップされています。
新しい「EmployeeInputAddress」エンティティと「EmployeeInputContact」エンティティを作成せずに、これを実現する最も簡単な方法は、それぞれに個別のマッピングファイルを作成することです(フィールドは文字通り1つずつ複製されるため)。言い換えると、単一のエンティティAddressを、それが属する親オブジェクトに応じて2つの異なるテーブルにマップするにはどうすればよいですか(Employeeオブジェクトから保存する場合はEmployeeAddressesテーブル、EmployeeInputオブジェクトから保存する場合はEmployeeInputAddressesテーブル)。