Actualizar (parentObject) sería una buena opción, pero para mí, primero fue a buscar a todos los niños uno por uno con solicitudes individuales. Sin lotes, sin subconsulta, sin unirse. ¡Muy mal!
Ayudó a .Clear() la colección secundaria del objeto primario; También desalojé los objetos del niño antes.
(estos cambios se modificaron mediante una actualización de HQL antes de que las inserciones múltiples de Parent/children SaveOrUpdate causaran costosas reconstrucciones de índices en clúster).
EDIT: Eliminé la actualización de HQL nuevamente, ya que la consulta (índice de disminución por un único, gran número) era más cara que cientos de actualizaciones de fila única en un lote. Así que terminé en un simple SaveOrUpdate (parentObject), sin necesidad de actualizar.
La razón era una colección secundaria con restricción única en ParentID e índice (número secuencial), lo que daría como resultado violaciones de singularidad al actualizar los elementos modificados de elementos secundarios. Por lo tanto, el índice primero se incrementó en 1000000 (o un número alto arbitrario) para todos los niños, luego, después de los cambios, se disminuyó nuevamente.
Siento decir esto, pero que no funciona :(Se trabaja en este escenario: 1) pEntity.pCollection está vacía 2) agrego un elemento de recogida en la base de datos manualmente 3) Puedo ver firmware colección pero eso no quiere trabajar en este escenario: 1) pEntity.pColelction tiene un valor 2) cambio de un valor de un elemento en la base de datos manualmente pEntity.pCollection 3) después de actualizar todavía tengo los mismos artículos en pEntity .pCollection ... – Katalonis
Refrescar solo debería funcionar en ese escenario ** si ** pCollection cascades. De lo contrario, debe actualizar manualmente sus elementos también. –
'Refresh' solo parece ser suficiente para mí para ambas adiciones y elimina una colección perezosa en una entidad. Un enlace a cualquier problema o advertencia conocida sería útil si hay casos especiales que debería tener en cuenta. –