質問

私は持っています one-to-many 親と子のJavaオブジェクトの関係。親オブジェクトが使用します java.util.List 複数の子オブジェクトを保存します。私が経験している問題は、1つ以上の子オブジェクトを追加した後に親オブジェクトを更新するときです。 List 親に。私はを使用しています saveOrUpdate 親を保存または更新する方法。親の新しいインスタンスを保存している場合は正常に動作しますが、保存した後、子供のオブジェクトを親に追加しようとします List そして、電話をかけようとします saveOrUpdate 親オブジェクトでは、子オブジェクトのエントリはデータベースに持続しません。いくつかのポインターが欲しいだけです。 ノート: :私は注釈を使用していません。
のスニペット parent.hbm.xml, 、それは1対多様な一方向の関係を定義します:

  <list name="children" cascade="all">
     <key column="parent_id"/>
     <index column="idx"/>
     <one-to-many class="Child"/>
  </list>
役に立ちましたか?

解決

私はこの例を再現しようとしましたが、それは私にとってうまくいきました。

これが私のマッピングです:

<hibernate-mapping package="com.example.domain">
    <class name="com.example.domain.Parent" table="PARENT">

        <id name="id" column="parent_id" access="field">
            <generator class="increment" />
        </id>
        <property name="name" column="parent_name" access="field" />

        <list name="children" access="field" cascade="all">
            <key column="parent_id" not-null="true" />
            <index column="idx" />
            <one-to-many class="Child" />
        </list>
    </class>
</hibernate-mapping>

<hibernate-mapping package="com.example.domain">
    <class name="com.example.domain.Child" table="CHILD">
        <id name="id" column="child_id" access="field">
            <generator class="increment" />
        </id>
        <property name="name" column="child_name" access="field" />
    </class>
</hibernate-mapping>

追加した not-null="true" 親マッピングに。

設定しようとしましたか show_sql Hibernate Configで生成されたSQLを表示しますか?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top