2010-12-06 14 views
0

私は2つのクラス、ParentとChildを持っているとしましょう。これらの2つは、一方向の関係を介して関連しています。Hibernateでmany-to-one関係のmany-to-one関係のIDを取得する

<bag name="children" cascade="all"> 
    <key column="parent_id" /> 
    <one-to-many class="Child" /> 
</bag> 

私は、私の知る限り、私は親をロードする必要が知っているように、親に子要素を追加し、それに子を追加し、親を保存したい場合:

Parent p = dao.getParent(); 
Child c = new Child(); 
p.getChildren().add(c); 
dao.saveOrUpdate(p); 

しかし、 GUIをバックアップするデータモデルでこの変更を反映しようとすると、問題が発生します。私が知る限り、永続化されたcに割り当てられた主キーを見つける方法はありません。これは、GUIに複数の行を追加すると後で使用するためにそれらを区別することが不可能なため、GUIで問題を引き起こしています。

子供のプライマリキーが永続化された後、そのプライベートキーにどのようにアクセスできるかについてのアイデアはありますか?

答えて

2

セッションがフラッシュされた後、つまり、session.flush()のexplcitまたはトランザクションコミット後に、自動生成されたキーにアクセスできます。

+0

ええと...私はそれを確認したと私はそれがnullとして戻ってきたと誓っていた可能性があります。しかし、私はちょうどデバッグし、あなたは正しいです。ありがとう。 – Tenner

関連する問題