سبات واحد للعديد من قائمة رسم الخرائط أحادية الاتجاه
-
29-09-2019 - |
سؤال
أملك 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 المولدة؟