Hola Edgar, Advertencia: esta es una respuesta disruptiva con el hilo.
Como dice el tano, cuanto mejor es tu modelo de objetos, mas facil es mapearlo con un ORM. Tu dignostico es correcto: "Me he liado un poco con la relacion de estos objetos" pero creo que estas buscando la solucion en el lugar equivocado. Al margen de los excelentes consejos que te estan dando, en mi opinion no deberias tener una referencia desde la Factura a la Retencion. Pregunta: si la factura no tiene retencion, sigue siendo una factura? si la respuesta es SI, entonces no es correcto colocar esa referencia. Lo mismo para la retencion: si la retencion no tiene factura, sigue siendo una retencion? creo que la respuesta es NO, no puede existir retencion sin el comprobante asociado (sea factura u otro). Otro punto seria: la factura necesita la retencion para algun calculo? que pasa cuando no la hay? como funciona ese calculo? ---------------------------------- Carlos Peix 2011/6/28 Edgar Ramos <[email protected]> > Gente un Saludo > > Me he liado un poco con la relacion de estos objetos > > Factura y Retencion > > A una Factura le corresponde una retencion, siempre y cuando el cliente lo > exija, caso contrario no aplica, para este efecto > > > Mis clases > > public class Factura > { > ....... > public virtual RetencionFuenteVenta Retencion { get; set; } > ....... > } > > public class RetencionFuenteVenta > { > ........ > public virtual Factura FacturaAplicada { get; set; } > ...... > } > > Mis mappings > > <class name="RetencionFuenteVenta"> > <id name="Id"> > <generator class="hilo"/> > </id> > > ......... > <many-to-one name="FacturaAplicada" class="Factura" column="FacturaId" > /> > </class> > > <class name="Factura"> > <id name="Id"> > <generator class="hilo"/> > </id> > > <many-to-one name="Retencion" class="RetencionFuenteVenta" > column="RetencionId" cascade="all" /> > </class> > > En el esquema de la bdd, la tabla Factura tiene el campo RetencionId como > permitir valores nulos, que para mi > caso es lo que requiero. > Por otro lado La tabla RetencionFuenteVenta, campo FacturaId, tiene tambien > permitir valores nulos, no me parece > que sea lo correcto, pero lo puesto asi para que nh persista estas > entidades y lo hace sin problemas > > Pero al quitar de RetencionFuenteVenta, campo FacturaID el permitir valores > nulos, nh me tira un error > ------------------------------- > {"No se puede insertar el valor NULL en la columna 'FacturaID', tabla > 'RetencionFuenteVenta'. La columna no admite valores NULL. INSERT falla.\r\n > Se terminó la instrucción."} > --------------------------------- > > Cualquier comentario o sugerencia les estoy muy agradecido > > Saludos > > Edgar > > > > -- > 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
