Puedes empezar eliminando algunas cosas de mas en tus mappings
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
namespace="PDVSA.Negocio.Entidades.Proyecto"
assembly="Entidades.Proyecto" default-lazy="true">
<class name="PDVSA.Negocio.Entidades.Proyecto.pEscenario,
Entidades.Proyecto" table="T_pEscenario">
<meta
attribute="extends">PDVSA.Business.Entities.Core.AbstractEntity</meta>
<meta attribute="default-property-tostring">ID</meta>
<meta attribute="field-browsable">false</meta>
<meta attribute="field-readonly">true</meta>
<id name="ID" column="FK_CodigoEscenario" type="String" length="32"
unsaved-value="0">
<generator class="foreign">
<param name="property">FK_CodigoEscenario</param>
</generator>
</id>
<one-to-one name="FK_CodigoEscenario" class="
PDVSA.Negocio.Entidades.Proyecto.dProyectoEscenario, Entidades.Proyecto"
foreign-key="PK_CodigoProyectoEscenario" lazy="false">
</one-to-one>
<property name="DescripcionEscenario" column="DescripcionEscenario"
type="String" length="1024">
</property>
</class>
</hibernate-mapping>
No soy un experto pero bueno esto son mis comentarios
Lo resaltado a simple vista nhibernate lo obvia o sea no necesitas
especificarlo.
En el caso del namespace este ya lo definiste en
*<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" namespace="
PDVSA.Negocio.Entidades.Proyecto"*
Otra cosa veo que pEscenario tiene como id referencia a un primary key en
otra entidad (o sea creaste un one-to-one) esto no es una buena estrategia
tal vez podrias agregar en pEscenario un id tipo hilo y hacer un many-to-one
hacia dProyectoEscenario
Ahora en el otro mapping el del child tienes habilitado cascade = "delete"
lo que seguramente que provoca el borrado
<many-to-one name="FK_CodigoEscenario" column="FK_CodigoEscenario"
class="PDVSA.Negocio.Entidades.Proyecto.pEscenario, Entidades.Proyecto"
foreign-key="FK_CodigoEscenario" cascade="delete">
</many-to-one>
saludos
El 30 de diciembre de 2010 14:39, Google Cris <
[email protected]> escribió:
> Tengo un problema al eliminar los datos de una tabla hijo relacionada
> con la tabla padre, si borro los elementos de la tabla hijo, me están
> borrando también los elementos de la tabla padre. El esquema es el
> siguiente:
>
> Tabla Padre:
>
> <?xml version="1.0" encoding="utf-8" ?>
> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
> namespace="PDVSA.Negocio.Entidades.Proyecto"
> assembly="Entidades.Proyecto"
> default-lazy="true">
> <class name="PDVSA.Negocio.Entidades.Proyecto.pEscenario,
> Entidades.Proyecto" table="T_pEscenario">
> <meta
> attribute="extends">PDVSA.Business.Entities.Core.AbstractEntity</meta>
> <meta attribute="default-property-tostring">ID</meta>
> <meta attribute="field-browsable">false</meta>
> <meta attribute="field-readonly">true</meta>
> <id name="ID" column="FK_CodigoEscenario" type="String"
> length="32"
> unsaved-value="0">
> <generator class="foreign">
> <param name="property">FK_CodigoEscenario</param>
> </generator>
> </id>
>
> <one-to-one name="FK_CodigoEscenario"
> class="PDVSA.Negocio.Entidades.Proyecto.dProyectoEscenario,
> Entidades.Proyecto"
> foreign-key="PK_CodigoProyectoEscenario" lazy="false">
> </one-to-one>
>
> <property name="DescripcionEscenario" column="DescripcionEscenario"
> type="String" length="1024">
> </property>
>
> </class>
> </hibernate-mapping>
>
> Tabla que posee la relación del Hijo:
>
> <?xml version="1.0" encoding="utf-8" ?>
> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
> namespace="PDVSA.Negocio.Entidades.Comunes"
> assembly="Entidades.Comunes"
> default-lazy="true">
> <class name="PDVSA.Negocio.Entidades.Comunes.rEsquemaStandoff"
> table="T_rEsquemaStandoff">
> <meta attribute="extends">PDVSA.Business.Entities.Core.AbstractEntity</
> meta>
> <meta attribute="addtional-soucecode">
> </meta>
> <id name="ID" column="PK_CodigoEsquemaStandoff" type="String"
> length="32" unsaved-value="0">
> <generator class="uuid.hex"/>
> </id>
>
> <many-to-one name="FK_CodigoEscenario"
> column="FK_CodigoEscenario"
> class="PDVSA.Negocio.Entidades.Proyecto.pEscenario,
> Entidades.Proyecto" foreign-key="FK_CodigoEscenario"
> cascade="delete">
> </many-to-one>
>
> <property name="ProfundidadStandoff" column="ProfundidadStandoff"
> type="double">
> </property>
>
> <property name="Standoff" column="Standoff" type="double">
> </property>
>
> </class>
>
> </hibernate-mapping>
>
>
> El borrado lo hago así:
>
> listaREsquemaStandoff =
> boundListCollection.Get<rEsquemaStandoff>().CreateCriteriaController()
> .AddCriteria(coleccion.Expression.Equal<rEsquemaStandoff,
> String>("FK_CodigoEscenario.ID", clsPEscenario.ID))
> .BoundList();
>
> while (listaREsquemaStandoff.Count != 0)
> {
> listaREsquemaStandoff.Remove(listaREsquemaStandoff[0]);
> }
>
> sessionContext.Delete<rEsquemaStandoff>(listaREsquemaStandoff.RemovedItems);
> sessionContext.Close();
>
>
> No se confundan con tanto código, la lista
> listaREsquemaStandoff.RemovedItems tiene la lista de los elementos que
> quiero elimina.
>
> El problema entonces es que cuando elimino el REsquemaStandoff (Hijo)
> también me esta borrando el PEscenario (Padre) y no quiero que esto
> pase, de manera tal que solo quiero que se borre el ResquemaStandoff.
>
> Para mi el problema esta en la declaración de las entidades, pero no
> veo como solucionarlo:
>
> Intente quitar el cascade=”delete” del many-to-one ubicado en la
> entidad REsquemaStandoff, pero en ese caso al momento de eliminar el
> PEscenario, me dice que no puede ser borrado el PEscenario porque
> existe un elemento en REsquemaStandoff que tiene su relación.
>
> <many-to-one name="FK_CodigoEscenario" column="FK_CodigoEscenario"
> class="PDVSA.Negocio.Entidades.Proyecto.pEscenario,
> Entidades.Proyecto" foreign-key="FK_CodigoEscenario"
> cascade="delete">
> </many-to-one>
>
> Ya no se que puedo hacer??? Si alguien me da unas luces o ve el error
> se lo agradezco mucho.
>
> --
> Para escribir al Grupo, hágalo a esta dirección:
> [email protected]
> Para más, visite: http://groups.google.com/group/NHibernate-Hispano
--
Para escribir al Grupo, hágalo a esta dirección:
[email protected]
Para más, visite: http://groups.google.com/group/NHibernate-Hispano