Hola Edgar, Si siguieras el diseño que estas proponiendo, abandonarias la POO a los pocoas pasos de haber comenzado. Te conviene colocar el codigo relacionado con la consulta de objetos en una clase distinta.
En tu caso, no solo estarias violando SRP (single responsability principle) al colocar logica del movimiento y de consulta en la clase Movimiento sino que estarias acoplando logica propia del modelo del negocio con una implementacion particular de acceso a datos (Nibernate). Tu propuesta se parece mucho al patron Active Record definido por Fowler y el mismo no lo recomienda mas que para casos de diseños de muy baja complejidad. Entonces, creo que es mejor que crees otra clase destinada a las consultas, siguiendo las ideas del patron Repository, por ejemplo, o DAO. Dado que se trata de logica de acceso a datos, tambien te recomiendo que definas interfaces para los repositories y que desarrolles la implementacion basada en NH en un proyecto separado. Hay muchisimos ejemplos en la web. ---------------------------------- Carlos Peix 2009/12/3 Edgar Ramos <[email protected]> > > Gracias a todos por sus comntarios pasados y futuros > > Soy totalmente nuevo en POO y NHibernate, asi que pido disculpas si > pregunto cosas triviales > Acabo de realizar mi primera persistencia, y despues de mucho leer > logre lo siguiente > > Clase Abstracta Movimiento, de esta derivan Ingresos, Transferencias, > Ventas y Produccion. > Movimiento tiene una asociacion one-to-many con > DetalleMovimiento, en la base de datos SQLServer2000, aplique una > tabla por toda la estructura que gira entorno a movimiento y la tabla > para el DetalleMovimiento > > Hasta aqui todo perfecto (genial Nhibernate !!!), ahora necesito > recuperar todos los movimientos realizados en una fecha especifica, de > este resultado, seleccionare > un movimiento y modificare su informacion (actualizar datos de > movimiento o detalle, o eliminar lineas del detalle) > > Cual seria la mejor manera para hacer esto, por ejemplo se me ocurre > metodos dentro de Movimiento getAllByDate(), y dentro de esto utilizar > el poderoso lenguaje de consultas de NHibernate para recuperar los > datos solicitados > > > > Gracias nuevamente por sus comentarios, todos son bienvenidos > > > > --~--~---------~--~----~------------~-------~--~----~ Para escribir al Grupo, hágalo a esta dirección: [email protected] Para más, visite: http://groups.google.com/group/NHibernate-Hispano -~----------~----~----~----~------~----~------~--~---
