Sigo con este tema y tengo una duda con eager-loading. El modelo es el que mostre en el post anterior: Order tiene una referencia a Customer y Customer tiene una referencia a Party.
Mappings: <class name="Order" table="Orders"> ... <many-to-one name="Customer" class="Customer" column="CustomerId"/> </class> <class name="Customer" table="Customers"> ... <many-to-one name="Party" cascade="save-update" unique="true" column="PartyId"/> </class> <import class="Party" /> <class name="Person" table="People"> ... <property name="FirstName"/> <property name="LastName"/> </class> <class name="Company" table="Companies"> ... <property name="CompanyName"/> </class> Con esto tengo dos temas, primero que me da un error de compilacion del mapping: "An association from the table Customers refers to an unmapped class: pruebas.nh.modelo.Party", a pesar del import. Que estoy haciendo mal? Luego me gustaria poder hacer este query (HQL) "from Order o join fetch o.Customer c join fetch c.Party p" Puedo hacer eso? Gracias! ---------------------------------- Carlos Peix 2011/6/1 Carlos Peix <[email protected]> > Hola gente, > > Quiero consultarles algo ya que estoy tratando de encontrar una forma de > mapeo mas o menos estandar para un problema mas o menos estandar en mis > modelos. La consulta no solo se relaciona con el mapeo en NH, tambien me > interesa determinar la estructura de BD mas adecuada. > > Basicamente es la relacion evento-rol-actor, para que quede mas claro, > permitanme conpartir algunas clases: > > // evento > public class Order { > Guid _id; > Customer _customer; > } > > // el rol > public class Customer { > Guid _id; > Party _actor; // (1) u Object _actor > } > > // actores (ver Fowler para teoria sobre Party/Company/Person y > accountability) > public class Company : Party { > Guid _id; > string _companyName; > } > > public class Person : Party { > Guid _id; > string _firstName; > string _lastName; > } > > (1) aqui puedo tener definida alguna clase base para los actores que pueden > adoptar el rol de customer (como seria el caso de Party) y otras veces no, > para lo cual tendre que usar Object. Entiendo que esto me lleva a dos > respuestas distintas a mi consulta. > > La pregunta es como me conviene mapear la propiedad _actor de Customer, ya > se en el caso en que esta deba ser de tipo Object o Party. > > He probado con any y con many-to-one. Este objeto Customer podria o no > utilizar el mismo valor para el Id que el actor. Opino que lo mejor seria > que no lo hagan. Por ahi con Guids no hay problema pero en otros casos me > restringe. > > Un punto adicional seria que, probablemente, necesite en la entidad Company > o Person una coleccion de todos los roles desempeñados, seria como la > relacion opuesta y, en este caso, definitivamente no los roles no van a > compartir ninguna clase base salvo, eventualmente, una interfaz "IRol". > > ---------------------------------- > Carlos Peix > > -- Para escribir al Grupo, hágalo a esta dirección: [email protected] Para más, visite: http://groups.google.com/group/NHibernate-Hispano
