23. Mapeo Básico de Clase <class name=“Clase” table=“tabla”> <id name=“id_de_clase” column=“id_de_tabla” type=“int|long”> <generator class=“increment” /> </id> <!-- El atributo type puede ser float, double, date, int, long o string --> <property name=“propiedad” column=“columna” type=“int” /> <!-- Las propiedades string pueden llevar una longitud --> <property name=“propiedad2” column=“columna2” type=“string” length=“12” /> <!-- Puede marcarse alguna propiedad como propiedad unica --> <property name=“propiedad3” column=“columna3” type=“int” unique=“true” /> </class> Acceso a Datos: Hibernate
24. Mapeo de relaciones Uno a Varios <class name=“Padre” table=“padre”> <id name=“id” type=“long” column=“id_padre”> <generator class=“increment” /> </id> <set name=“hijos”> <key column=“id_padre” /> <one-to-many class=“Hijo” /> </set> </class> <class name=“Hijo” table=“hijo”> <id name=“id” type=“long” column=“id_padre”> <generator class=“increment” /> </id> <many-to-one name=“padre” column=“id_padre” class=“Padre” /> </class> Acceso a Datos: Hibernate
25. Mapeo de relaciones Uno a Uno <class name=“Padre” table=“padre”> <id name=“id” type=“long” column=“id_padre”> <generator class=“increment” /> </id> <one-to-one name=“hijo” class=“Hijo” /> </class> <class name=“Hijo” table=“hijo”> <id name=“id” type=“long” column=“id_padre”> <generator class=“foreign”> <param name=“property”>padre</param> </generator> </id> <one-to-one name=“padre” class=“Padre” /> </class> Acceso a Datos: Hibernate
32. Interfaz Básica de Servicio Servicios: DAO’s public interface BasicDao { public boolean agregar(Object o); public boolean editar(Object o); public boolean borrar(Object o); //Buscar duplicados antes de agregar public boolean hayRepetido(Object o); //Buscar dependientes antes de borrar public boolean hayDependiente(Object o); public List cargar(); public List cargarUno(Serializable id); public List cargarCondicion(String prop, Object val); //Seter y Getter del SessionFactory de Hibernate public void setSessionFactory(SessionFactry sf); public SessionFactory getSessionFactory(); }
33.
34. Herencia Sugerida Servicios: DAO’s BasicDao GenericDao SpecialDao SpecificDao1 SpecificDao2 Métodos extra y operaciones especializadas, como cargarLibrosDeAutor o un eliminar diferente podrían estar aqui Operaciones Triviales colocadas aquí
42. Ejemplo de Spring Factory: Spring <bean name=“un_dao” class=“clase_de_dao”> <!-- Le configura el SessionFactory al dao --> <property name=“sessionFactory” ref=“sf” /> </bean> <!– Cada vez que se requiera el action crea una nueva instancia --> <bean name=“action_dao” class=“clase_action” scope=“prototype”> <!-- Y establece el dao para el action --> <property name=“dao” ref=“un_dao” /> </bean>