1

親hbmファイル内にセットのマッピングがあるとしましょう:

    <set cascade="all" inverse="true" lazy="false" name="children">
       <key column="parentChildId" foreign-key="fk_fk" not-null="true" on-   
         delete="cascade"/>
     <one-to-many class="Child" not-found="ignore"/>
   </set> 

親hbmでデフォルトの子を定義することは、とにかく可能ですか?親が作成されるたびに、このセット内に1つの子が追加されますか????

奇妙に聞こえるかもしれませんが、パフォーマンスの問題があるため、サーバーへの呼び出しを最小限に抑える必要があります(ここでは、1つは親を保存し、もう1つはデフォルトの子を保存していました)。

私はすべての助けに感謝します。

ありがとうございました

4

1 に答える 1

2

「サーバー」とはどういう意味ですか?データベースサーバーのことですか?その場合、1つのSQLステートメントで親と子を作成する方法はありません。ただし、Hibernateはバッチ更新を使用するため、非常に効率的です。

「アプリケーションサーバー」を意味する場合、それは技術的な問題ではなく、機能的な問題のように聞こえます。親の作成方法を変更して、同時に子を作成するようにします。Parentクラスのファクトリメソッドを使用してそれを行うこともできます。

public class Parent {
    public static Parent createParentWithDefaultChild() {
        Parent p = new Parent();
        p.addChild(new Child());
        return p;
    }
    // ...
}
于 2011-04-12T14:18:49.377 に答える