Pregunta

Me tiene relación one-to-many entre padre e hijo objetos Java. Los usos de objetos padres java.util.List que almacena múltiples objetos secundarios. El problema que estoy experimentando es cuando se actualiza el objeto padre después de haber añadido uno o más objeto hijo (s) a la List en la matriz. Estoy utilizando el método saveOrUpdate para guardar o actualizar el padre. Funciona bien si estoy ahorrando una nueva instancia del padre, pero después de guardarlo, intento agregar objeto hijo (s) en el List padres y luego tratar de saveOrUpdate llamada en el objeto padre, pero no hay entradas de objeto secundario ( s) get persistido hasta la base de datos. Yo sólo quisiera algunos consejos. Nota: : No estoy usando anotaciones.
un fragmento de la Parent.hbm.xml , que define el uno-a-muchos relación unidireccional:

  <list name="children" cascade="all">
     <key column="parent_id"/>
     <index column="idx"/>
     <one-to-many class="Child"/>
  </list>
¿Fue útil?

Solución

Me acaba de intentar reproducir este ejemplo y funcionó bien para mí.

Aquí están mis asignaciones:

<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>

He añadido not-null="true" a la asignación de los padres.

¿Se intenta establecer show_sql en su configuración de hibernación para ver el SQL generado?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top