NHibernateで複合主キー

NHibernate で複合主キーを持つエンティティを扱うためのメモ

単独主キーのマッピングファイル

主キーが単独ならマッピングファイルはこんな感じ

<?xml version="1.0" encoding="utf-8" ?> 
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.0">
  <class name="Hoge.HogeTable,Hoge" table="HOGE_TABLE">
    <id name="NUMBER">
      <generator class="assigned" /> 
    </id>
    <property name="NAME" /> 
  </class>
</hibernate-mapping>

複合主キーのマッピングファイル

主キーが単独でないならマッピングファイルはこんな感じ

<?xml version="1.0" encoding="utf-8" ?> 
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.0">
  <class name="Hoge.HogeTable,Hoge" table="HOGE_TABLE">
    <composite-id>
      <key-property name="NUMBER" /> 
      <key-property name="BRANCH_NUMBER" />
    </composite-id>
    <property name="NAME" /> 
  </class>
</hibernate-mapping>