Hola Rodrigo,
No estoy entendiendo el modelo.
En tu dominio hay siniestros, propiedades, vehiculos, lesionados...
Que es un subsiniestro?
Saludos,
Raul Lopez
Rodrigo Juarez escribió:
> Hola
>
>
>
> Tengo una clase Siniestro, que posee una colección de subsiniestros, los
> cuales pertenecen a distintas clases
>
>
>
> Los subsiniestros implementan ISubSiniestro, y en este momento, la unica
> clase que lo implementa es Lesionados, aunque luego agregare Propiedades
> y Vehiculos
>
>
>
> Como se puede ver, la clase siniestro, tiene una lista de todos los
> ISubSiniestros, lo que yo necesito saber, es si con esta estrategia,
> puedo tener tres listas distintas dentro de siniestro, Lesionados,
> Propiedades y Vehiculos y como se mapean, en lugar de tener una sola
> lista de ISubSiniestro.
>
>
>
> Desde ya muchas gracias
>
>
>
>
>
> Mapeo Lesionados
>
> -----------------------------------------------------------------------------------
>
> <?xml version="1.0" encoding="utf-8" ?>
>
> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
> namespace="Gestion.Domain.Seguros" assembly="Gestion.Domain.Seguros">
>
> <joined-subclass name="Lesionados" lazy="true" table="Lesionados"
> extends="ISubSiniestro">
>
> <key column="uid"/>
>
> <property name="Transportado"/>
>
> <many-to-one name="Lesion" class="Lesion"/>
>
> <many-to-one name="EstadoGestion" class="EstadoGestion"/>
>
> </joined-subclass>
>
> </hibernate-mapping>
>
>
>
>
>
> Mapeo ISubSiniestro
>
> -----------------------------------------------------------------------------------
>
> <?xml version="1.0" encoding="utf-8" ?>
>
> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
> namespace="Gestion.Domain.Seguros" assembly="Gestion.Domain.Seguros">
>
> <class name="ISubSiniestro" lazy="true">
>
> <id name="Id" type="Int64" column="uid" unsaved-value="0">
>
> <generator class="NHibernate.Id.TableHiLoGenerator">
>
> <param name="table">uid_table</param>
>
> <param name="column">next_hi_value_column</param>
>
> </generator>
>
> </id>
>
>
>
> <many-to-one name="Siniestro" class="Siniestro"/>
>
>
>
> <!--Datos del Damnificado-->
>
> <component name="Damnificado"
> class="Gestion.Domain.Seguros.Persona,Gestion.Domain.Seguros">
>
> <property name="Nombre" length ="100" column="DamnificadoNombre"/>
>
> <property name="Documento" length="15" column="DamnificadoDocumento"/>
>
> <property name="EstadoCivil" column="DamnificadoEstadoCivil"/>
>
> <property name="Sexo" column="DamnificadoSexo"/>
>
> <property name="Nacimiento" column="DamnificadoNacimiento"
> length="8"/>
>
> <property name="Nacionalidad" length="50"
> column="DamnificadoNacionalidad"/>
>
> <property name="Telefono" length="30" column="DamnificadoTelefono"/>
>
> <component name="Direccion"
> class="Gestion.Domain.Seguros.Direccion, Gestion.Domain.Seguros">
>
> <property name="Calle" length="100" column="DamnificadoCalle"/>
>
> <property name="Numero" column="DamnificadoCalleNumero"/>
>
> <property name="CP" length="7" column="DamnificadoCP"/>
>
> <property name="Localidad" length="50"
> column="DamnificadoLocalidad"/>
>
> <property name="Provincia" length="50"
> column="DamnificadoProvincia"/>
>
> </component>
>
> </component>
>
>
>
> <property name="SubSiniestroCategoria"/>
>
>
>
> <property name="Observaciones" length ="10000"/>
>
> <property name="Situacion" length ="10000"/>
>
>
>
> <property name="Reclamo"/>
>
> <property name="Indemnizacion"/>
>
> <property name="Demanda"/>
>
>
>
> </class>
>
> </hibernate-mapping>
>
>
>
>
>
> Mapeo Siniestro
>
> -----------------------------------------------------------------------------------
>
> <?xml version="1.0" encoding="utf-8" ?>
>
> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
> namespace="Gestion.Domain.Seguros" assembly="Gestion.Domain.Seguros">
>
>
>
> <class name="Siniestro" lazy="true">
>
>
>
> <id name="Id" type="Int64" column="uid" unsaved-value="0">
>
> <generator class="NHibernate.Id.TableHiLoGenerator">
>
> <param name="table">uid_table</param>
>
> <param name="column">next_hi_value_column</param>
>
> </generator>
>
> </id>
>
>
>
> <!--Datos del Siniestro-->
>
> <property name="Fecha"/>
>
> <property name="Numero"/>
>
> <component name="DireccionAccidente"
> class="Gestion.Domain.Seguros.Direccion, Gestion.Domain.Seguros">
>
> <property name="Calle" length="100" column="AccidenteCalle"/>
>
> <property name="Numero" column="AccidenteCalleNumero"/>
>
> <property name="CP" length="7" column="AccidenteCP"/>
>
> <property name="Localidad" length="50" column="AccidenteLocalidad"/>
>
> <property name="Provincia" length="50" column="AccidenteProvincia"/>
>
> </component>
>
> <property name="Comisaria"/>
>
> <property name="Velocidad"/>
>
> <property name="Visibilidad" length="20"/>
>
> <property name="Bocina"/>
>
> <property name="Lluvia"/>
>
> <property name="Luces"/>
>
> <property name="ManoUnica"/>
>
>
>
> <!--Datos del Asegurado-->
>
> <property name="Poliza"/>
>
> <property name="Linea" length="50"/>
>
> <property name="Interno" length="50"/>
>
> <many-to-one name="Asegurado" class="Asegurado"/>
>
>
>
> <!--Datos del Chofer-->
>
> <component name="Chofer"
> class="Gestion.Domain.Seguros.Persona,Gestion.Domain.Seguros">
>
> <property name="Nombre" length ="100" column="ChoferNombre"/>
>
> <property name="Documento" length="15" column="ChoferDocumento"/>
>
> <property name="EstadoCivil" column="ChoferEstadoCivil"/>
>
> <property name="Sexo" column="ChoferSexo"/>
>
> <property name="Nacimiento" column="ChoferNacimiento" length="8"/>
>
> <property name="Nacionalidad" length="50"
> column="ChoferNacionalidad"/>
>
> <property name="Telefono" length="30" column="ChoferTelefono"/>
>
> <component name="Direccion"
> class="Gestion.Domain.Seguros.Direccion, Gestion.Domain.Seguros">
>
> <property name="Calle" length="100" column="ChoferCalle"/>
>
> <property name="Numero" column="ChoferCalleNumero"/>
>
> <property name="CP" length="7" column="ChoferCP"/>
>
> <property name="Localidad" length="50" column="ChoferLocalidad"/>
>
> <property name="Provincia" length="50" column="ChoferProvincia"/>
>
> </component>
>
> </component>
>
> <property name="ChoferDeclaracion" type="string" length="10000"/>
>
>
>
> <property name="LicenciaClase" length="50"/>
>
> <property name="LicenciaNumero"/>
>
> <property name="LicenciaVencimiento" length="8" />
>
> <property name="AntiguedadEmpresa"/>
>
> <property name="AntiguedadConductorProfesional"/>
>
>
>
> <!--Datos del vehiculo de pasajeros-->
>
> <property name="VehiculoMarca" length ="100"/>
>
> <property name="VehiculoTipo" length ="20"/>
>
> <property name="Patente" length ="10"/>
>
> <property name="MotorNumero" length ="20"/>
>
> <property name="Anio"/>
>
>
>
> <!--Testigos (Componente persona)-->
>
>
>
> <!--SubClases de SubSiniestro-->
>
>
>
> <!--Vehiculos accidentados-->
>
>
>
> <!--Propiedades dañadas-->
>
>
>
> <!--Lesionados Transportados / No Transportados-->
>
> <bag name="SubSiniestros" inverse="true"
> cascade="all-delete-orphan" lazy="false">
>
> <key column="Siniestro"/>
>
> <one-to-many class="ISubSiniestro"/>
>
> </bag>
>
>
>
> </class>
>
>
>
> </hibernate-mapping>
>
>
>
> Clase Lesionados
>
> -----------------------------------------------------------------------------------
>
> namespace Gestion.Domain.Seguros
>
> {
>
> public class Lesionados:ISubSiniestro
>
> {
>
>
>
> public Lesionados()
>
> {
>
> SubSiniestroCategoria = Seguros.SubSiniestroCategoria.Lesiones;
>
> }
>
>
>
> #region Implementation of ISubSiniestro
>
>
>
> public virtual long Id { get; set; }
>
> public virtual Siniestro Siniestro { get; set; }
>
> public virtual Persona Damnificado { get; set; }
>
> public virtual string Observaciones { get; set; }
>
> public virtual string Situacion { get; set; }
>
> public virtual double Reclamo { get; set; }
>
> public virtual double Indemnizacion { get; set; }
>
> public virtual double Demanda { get; set; }
>
> public virtual SubSiniestroCategoria SubSiniestroCategoria {
> get; set; }
>
>
>
> #endregion
>
>
>
> public virtual Lesion Lesion { get; set; }
>
> public virtual EstadoGestion EstadoGestion { get; set; }
>
> public virtual bool Transportado { get; set; }
>
>
>
> //TODO: crear wrapper y usar en donde se llaman a estos metodos
>
> public virtual string Nombre
>
> {
>
> get
>
> {
>
> return Damnificado.Nombre;
>
> }
>
> }
>
>
>
> //TODO: crear wrapper y usar en donde se llaman a estos metodos
>
> public virtual string DocumentoNumero
>
> {
>
> get
>
> {
>
> return Damnificado.Documento;
>
> }
>
> }
>
>
>
> }
>
> }
>
>
>
>
>
>
>
> Clase ISubSiniestro
>
> -----------------------------------------------------------------------------------
>
> using System;
>
>
>
> namespace Gestion.Domain.Seguros
>
> {
>
> public interface ISubSiniestro
>
> {
>
>
>
> Int64 Id { get; set; }
>
> Siniestro Siniestro { get; set; }
>
> Persona Damnificado { get; set; }
>
>
>
> string Observaciones { get; set; }
>
> string Situacion { get; set; }
>
>
>
> double Reclamo { get; set; }
>
> double Indemnizacion { get; set; }
>
> double Demanda { get; set; }
>
>
>
> SubSiniestroCategoria SubSiniestroCategoria { get; set; }
>
>
>
> // IList<GestionPendiente> Pendientes { get; set; }
>
>
>
> }
>
> }
>
>
>
>
>
> Clase Siniestro
>
> -----------------------------------------------------------------------------------
>
> using System;
>
> using System.Collections.Generic;
>
>
>
> namespace Gestion.Domain.Seguros
>
> {
>
> public class Siniestro
>
> {
>
>
>
> public Siniestro()
>
> {
>
> SubSiniestros = new List<ISubSiniestro>();
>
> }
>
>
>
> public virtual Int64 Id { get; set; }
>
>
>
> // Datos del Siniestro
>
> public virtual DateTime Fecha { get; set; }
>
> public virtual Int32 Numero { get; set; }
>
> public virtual Direccion DireccionAccidente { get; set; }
>
> public virtual int Comisaria { get; set; }
>
> public virtual int Velocidad { get; set; }
>
> public virtual string Visibilidad { get; set; }
>
> public virtual bool Bocina { get; set; }
>
> public virtual bool Lluvia { get; set; }
>
> public virtual bool Luces { get; set; }
>
> public virtual bool ManoUnica { get; set; }
>
>
>
> // Datos del Asegurado
>
> public virtual int Poliza { get; set; }
>
> public virtual string Linea { get; set; }
>
> public virtual string Interno { get; set; }
>
> public virtual Asegurado Asegurado { get; set; }
>
> public virtual string VehiculoMarca { get; set; }
>
> public virtual string VehiculoTipo { get; set; }
>
> public virtual string Patente { get; set; }
>
> public virtual string MotorNumero { get; set; }
>
> public virtual int Anio { get; set; }
>
>
>
> // Datos del Chofer
>
> public virtual Persona Chofer { get; set; }
>
> // Falta en UI
>
> public virtual string ChoferDeclaracion { get; set; }
>
> public virtual string LicenciaClase { get; set; }
>
> public virtual string LicenciaNumero { get; set; }
>
> public virtual string LicenciaVencimiento { get; set; }
>
> public virtual int AntiguedadEmpresa { get; set; }
>
> public virtual int AntiguedadConductorProfesional { get; set; }
>
>
>
> // Lesionados
>
> public virtual IList<ISubSiniestro> SubSiniestros { get; set; }
>
>
>
> }
>
> }
>
>
>
>
>
> Rodrigo Juarez
>
> [email protected] <mailto:[email protected]>
>
> http://rodrigojuarez.com.ar
>
> http://intap.com.ar
>
>
>
>
> >
--~--~---------~--~----~------------~-------~--~----~
Para escribir al Grupo, hágalo a esta dirección:
[email protected]
Para más, visite: http://groups.google.com/group/NHibernate-Hispano
-~----------~----~----~----~------~----~------~--~---