سبات واحد للعديد من قائمة رسم الخرائط أحادية الاتجاه

StackOverflow https://stackoverflow.com/questions/3924357

سؤال

أملك one-to-many علاقة بين الوالدين والطفل جافا كائنات. يستخدم الكائن الأصل java.util.List التي تخزن العديد من الأشياء للأطفال. المشكلة التي أواجهها هي عند تحديث الكائن الأصل بعد أن أضفت واحدة أو أكثر من كائنات (كائنات) طفل إلى List في الوالد. أنا أستخدم saveOrUpdate طريقة لحفظ أو تحديث الوالد. يعمل بشكل جيد إذا قمت بحفظ مثيل جديد للوالد ، لكن بعد حفظه ، أحاول إضافة كائنات (كائنات) طفل إلى الوالد List ثم حاول الاتصال saveOrUpdate على الكائن الأصل ، ولكن لا توجد إدخالات للأشياء (الكائنات) الطفل تستمر في قاعدة البيانات. أنا فقط أريد بعض المؤشرات. ملحوظة: أنا لا أستخدم التعليقات التوضيحية.
مقتطف من parent.hbm.xml, ، هذا يحدد العلاقة أحادية الاتجاه الواحد:

  <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 في تكوين السبات الخاص بك لرؤية SQL المولدة؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top