2012-03-29 10 views
0

私は学生と学生の履歴と呼ばれる2つのテーブルを持っています。生徒IDはジェネレータを使って生成されます。学生に挿入するとき、同じレコードを同じIDの履歴テーブルに挿入する必要があります。どうすればこれを達成できますか?Hibernateで同じシーケンスジェネレータを2つのテーブルにリンクする方法はありますか?

よろしく、 Karthik。

+0

すべてのデータを別の履歴テーブルにコピーしたいのですが、なぜ同じシーケンスを使用したいのですか? – ManuPK

答えて

0

マッピングでは、学生と学生の履歴の関係を1:1または1:nの関係で定義し、挿入/更新のカスケードを定義します。学生履歴テーブルの学生への外部キーについては、<key>要素を使用します(学生用のマッピングで定義されます)。

例えば

(ここでは1:nの関係)あなたは学生のマッピングでください:あなたは更新時に

<bag name="studentHistory" cascade="all" ... > 
    <key column="studentId" not-null="true"> 
    </key> 
    <one-to-many class="com.xxx.StudentHistory"/> 
</bag> 

続い/学生のインスタンスを挿入し、歴史の中で外部キーが自動的に処理されます休止状態で。

関連する問題