2.2. パート2 - 関連のマッピング
これまで、 単一の永続エンティティクラスを分離されたテーブルにマッピングしました。 これにクラスの関連を追加してみましょう。 アプリケーションに人物を追加し、 人物が参加するイベントのリストを保存します。
2.2.1. Person クラスのマッピング
Person クラスの最初の部分は次のようになります。
package org.hibernate.tutorial.domain;
public class Person {
private Long id;
private int age;
private String firstname;
private String lastname;
public Person() {}
// Accessor methods for all properties, private setter for 'id'
}
これを
src/main/java/org/hibernate/tutorial/domain/Person.java というファイルに保存します。
次に、
src/main/resources/org/hibernate/tutorial/domain/Person.hbm.xml という新しいマッピングファイルを作成します。
<hibernate-mapping package="org.hibernate.tutorial.domain">
<class name="Person" table="PERSON">
<id name="id" column="PERSON_ID">
<generator class="native"/>
</id>
<property name="age"/>
<property name="firstname"/>
<property name="lastname"/>
</class>
</hibernate-mapping>
最後に、
Event.hbm.xmlの既存のマッピングのすぐ後に、Hibernateの設定に新たなマッピングを追加します。
<mapping resource="events/Event.hbm.xml"/>
<mapping resource="events/Person.hbm.xml"/>
これら 2 つのエンティティ間の関連を作成します。 人物はイベントに参加でき、 イベントには参加者がいます。 ここで対応しなければならない設計上の問題は、 指向性、 多重度、 コレクション動作です。