0

NHibernate を使用して次のエンティティをマッピングしています。

+ Party (abstract)
  - Employee
  - Customer

私は次の方法で結合されたサブクラスと呼ばれるマッピング戦略を使用しています:

<!-- Base PARTY entity-->
  <class name="PartyMap" abstract="true" table="Party">
    <id name="Id" column="PartyID">
      <generator class="guid.comb" />
    </id>
    <joined-subclass table="Customer" name="Customer">
      <key column="CustomerID" />
    </joined-subclass>
    <joined-subclass table="Employee" name="Employee">
      <key column="EmployeeID" />
    </joined-subclass>
  </class>

私の問題は、Partyテーブル内に次の構造があることです。

PartyTable
  PartyID
  EmployeeID
  CustomerID

NHibernate はマップされたすべての子テーブルにIdフィールドを使用します。目標を達成するために、コンポーネントのような別のアプローチを使用する必要がありますか?

4

1 に答える 1

0

私が見つけた 1 つの可能な解決策は、NHibernate フレームワークの上にイベント リスナを実装することです。これにより、エンティティが保存されるたびに、渡された値を制御し、クレイジーなストアド プロシージャを作成することなく Guid でエラーを修正できます。私はそれが醜いことを知っていますが、データベースはレガシーであるため、できることはあまりありません

于 2013-09-02T07:37:56.453 に答える