新しく追加されたクラスに永続化を追加しようとしています。私が始めたとき、オブジェクトのリストを単にラップするTournament
タイプのメンバーで名前が付けられたクラスがありました。これは、クラスの休止状態のマッピングです。これは id であり、他のフィールドは省略されています。Schedule
Session
<hibernate-mapping default-access="field">
<class name="fully.qualified.class.Tournament" table="tournaments">
<component name="schedule" class="fully.qualified.class.Schedule">
<list name="sessions" cascade="all-delete-orphan" lazy="true" table="tournament_sessions" >
<key column="tournament_id" not-null="true"/>
<index column="session_index"/>
<one-to-many class="fully.qualified.class.Session"/>
</list>
</component>
</class>
</hibernate-mapping>
ここで、セッションテーブルを複製して呼び出した新しいクラスを作成する必要がありますOtherThing
。上記のものと非常によく似た休止状態のマッピングも作成しました。Schedule.
other_thing_sessions.
<hibernate-mapping default-access="field">
<class name="fully.qualified.class.OtherThing" table="other_things">
<component name="schedule" class="fully.qualified.class.Schedule">
<list name="sessions" cascade="all-delete-orphan" lazy="true" table="other_thing_sessions" >
<key column="other_thing_id" not-null="true"/>
<index column="session_index"/>
<one-to-many class="fully.qualified.class.Session"/>
</list>
</component>
</class>
</hibernate-mapping>
驚いたことに、これにより次のエラーが発生しました。
org.hibernate.MappingException: Repeated column in mapping for entity: fully.qualified.class.Session column: session_index (should be mapped with insert="false" update="false")
休止状態は、このクラスを繰り返し使用することを好まないようです。そのentity-name="OtherThingSession"
ため、1 対多の要素に属性を追加してみました。今、私はこのエラーを持っています:
org.hibernate.MappingException: Association references unmapped class: OtherThingSession
これは私を一瞬うんざりさせたので、戻って元のエラーを調べました. 新しいマッピングでインデックス列の名前を変更することにしました。これは休止状態から苦情を受けませんでしたが、永続化は機能しませんでした。tournament_sessions
永続化しようとしたときに、セッションオブジェクトをテーブルに挿入しようとしたようですOtherThing.
誰でもこの問題を解決する方法について何か考えがありますか?