PersonTable
、StudentTable
、 の3 つのテーブルがあるとしTeacherTable
ます。を使用できます
PersonTableにマップされた基本クラスには、共通のプロパティが含まれ、ID
生成されます。StudentTableとTeacherTableには、親からの ID が提供されます。
<class name="Person" table="PersonTable" abstract="true">
<id name="PID" type="Int32" column="PersonId">
<generator class="native"/>
</id>
<!-- common properties of a Person -->
<property name="FirstName" />
<property name="LastName" />
<property name="DOB" />
<property name="Gender" />
<!-- Student and its own table -->
<joined-subclass name="Student" table="StudentTable">
<key column="SutdentID"/> <!-- Filled with PersonId value from a base -->
<property name="Grade" />
</joined-subclass>
<!-- Teacher and its own table -->
<joined-subclass name="Teacher" table="TeacherTable">
<key column="TeacherId"/><!-- Filled with PersonId value from a base -->
<property name="Subjects" />
</joined-subclass>
</class>
これで、ディスクリミネータなしで、スーパー クラスとサブ クラスごとにテーブルができました。