You are on page 1of 13

Ejemplos de Mapeo con MyEclipse 4.1 (Versin 1.

0)

Figura 1. Modelo de Trabajo

___________________________________________________________________________________________________ _
Carrera 31 No. 35 -12 Oficina 303 Edificio Concasa Telfono 57 - 7 634 47 86 E-mail info@cooprac.com www.cooprac.com

Tomando como referencia el modelo de la figura 1, y el motor de base datos MySql, vamos a realizar una serie de ejemplos que permitan analizar con ms detalle el esquema de mapeo utilizado por el plugin en cuestin. La figura 2 nos muestra las tablas LIB_MATERIAL y LIB_ESTADO_MATERIAL

Figura 2. Ejemplo 1 El primer caso a recrear es aquel donde se escogen las tablas y todos los indicadores se dejan apagados, esto permite hacer las relaciones solo sobre las tablas que se estn mostrando.
___________________________________________________________________________________________________ _
Carrera 31 No. 35 -12 Oficina 303 Edificio Concasa Telfono 57 - 7 634 47 86 E-mail info@cooprac.com www.cooprac.com

El resultado nos muestra que LIB_MATERIAL tiene navegacin sobre la otra tabla. Pero LIB_ESTADO_MATERIAL no tiene navegacin sobre la tabla LIB_MATERIAL

Figura 3. LIB_MATERIAL

___________________________________________________________________________________________________ _
Carrera 31 No. 35 -12 Oficina 303 Edificio Concasa Telfono 57 - 7 634 47 86 E-mail info@cooprac.com www.cooprac.com

Figura 3. LIB_ESTADO_MATERIAL En el siguiente ejemplo, usaremos las mismas tablas, pero con la configuracin que se muestra en la figura 4.

Figura 4. Ejemplo 2 Para este caso vamos a operar sobre las referencias de la tabla, por lo tanto solo debemos elegir para el mapeo LIB_MATERIAL y al seleccionar la opcin A -> B, notamos como trae a LIB_FORMATO, es decir, trae aquellas tablas que estn contenidas, la relacin puede leerse A tiene a B.
___________________________________________________________________________________________________ _
Carrera 31 No. 35 -12 Oficina 303 Edificio Concasa Telfono 57 - 7 634 47 86 E-mail info@cooprac.com www.cooprac.com

Analicemos los mapeos que se generan con la configuracin de la figura 4.

Figura 5. LIB_FORMATO

Figura 6. LIB_MATERIAL Para tener en cuenta el ejercicio fue repetido tomando las mismas tablas y simulando el ejemplo 1 y los resultados fueron exactos, obsrvese la diferencia entre la figura 6 y la figura 3 en lo que respecta a LIB_FORMATO, en una tiene soporte de tabla y en otra no, adems podemos ver en la figura 5 que se genera un esquema de navegacin hacia LIB_MATERIAL, a pesar que LIB_FORMATO es una tabla basica o de soporte, se puede afirmar que las relaciones son correctas, pues LIB_FORMATO acta como tabla padre, desafortunadamente para nuestro caso esta tabla no tiene la importancia que Hibernate le asigna y por eso no quedamos conforme con el mapeo. La pregunta ahora es como solucionar ese detalle y la contestaremos mas adelante, por lo pronto sigamos con el ejemplo 3.

___________________________________________________________________________________________________ _
Carrera 31 No. 35 -12 Oficina 303 Edificio Concasa Telfono 57 - 7 634 47 86 E-mail info@cooprac.com www.cooprac.com

Figura 7. Ejemplo 3 Para este caso vamos a operar sobre quienes referencian a la tabla, por lo tanto solo debemos elegir para el mapeo LIB_MATERIAL y al seleccionar la opcin A <- B, notamos como trae a otras tablas, es decir, trae aquellas tablas donde esta contenida, la relacin puede leerse A es contenida por B.

___________________________________________________________________________________________________ _
Carrera 31 No. 35 -12 Oficina 303 Edificio Concasa Telfono 57 - 7 634 47 86 E-mail info@cooprac.com www.cooprac.com

Figura 8. LIB_MATERIAL

___________________________________________________________________________________________________ _
Carrera 31 No. 35 -12 Oficina 303 Edificio Concasa Telfono 57 - 7 634 47 86 E-mail info@cooprac.com www.cooprac.com

Figura 9. LIB_ESTADO_MATERIAL

Figura 10. LIB_INDICE_X_MATERIAL El comportamiento sigue siendo muy similar, el soporte de las relaciones, se da entre las tablas que estn presentes en el editor, miremos la figura 8 y nos damos cuenta que no hay soporte para LIB_FORMATO.
___________________________________________________________________________________________________ _
Carrera 31 No. 35 -12 Oficina 303 Edificio Concasa Telfono 57 - 7 634 47 86 E-mail info@cooprac.com www.cooprac.com

Hasta este punto podemos afirmar (al menos basado en los anlisis realizados) que una de las formas ms cmodas para trabajar es la del ejemplo 1, colocando todas las tablas en el editor sin los dos primeros indicadores encendidos, es decir, apagados. Pero nos queda por contestar una pregunta y es como lograr un buen mapeo sin que aquellas tablas que consideramos bsicas pero que tienen la marca de ser padres para Hibernate, no creen la navegacin hacia las tablas hijas, el caso de la figura 5. Para eso vamos a usar los dos siguientes indicadores, pero primero veremos como opera cada uno de ellos. En la figura 11, seguimos trabajando con LIB_MATERIAL, hemos seleccionado solo esa tabla, y le pedimos que nos de soporte, solo soporte, para las tablas que estn contenidas en las seleccionadas y que no estn listadas, es decir, para aquellas con las cuales en este caso LIB_MATERIAL posee dentro de su estructura. Lo anterior solo nos genera un archivo de mapeo y nos permite una forma de resolver el problema del soporte para aquellas tablas que consideramos bsicas, como el caso de LIB_FORMATO, podemos ver que el mapeo nos genero soporte, pero nunca nos creo el archivo, de tal manera que el mapeo de las tablas que denominamos bsicas las debemos hacer por separado y luego pedir este soporte en las que denominaos transaccionales, o simplemente realizar todo el mapeo junto y editar los archivos de configuracin, esto si queda a gusto del programador.

___________________________________________________________________________________________________ _
Carrera 31 No. 35 -12 Oficina 303 Edificio Concasa Telfono 57 - 7 634 47 86 E-mail info@cooprac.com www.cooprac.com

Figura 11. EJEMPLO 4

___________________________________________________________________________________________________ _
Carrera 31 No. 35 -12 Oficina 303 Edificio Concasa Telfono 57 - 7 634 47 86 E-mail info@cooprac.com www.cooprac.com

10

Figura 12. LIB_MATERIAL El ltimo caso a analizar lo mostramos en la figura 13.

Figura 13. LIB_MATERIAL Este caso es el mismo del ejemplo 4, la nica diferencia es que el indicador que se encuentra seleccionado es el ltimo y no el penltimo ahora le pedimos que nos de soporte, solo soporte, para las tablas que son hijas de las tablas seleccionadas y que no estn listadas, es decir, para aquellas con las cuales en este caso LIB_MATERIAL es padre o esta haciendo relacin su llave primaria en otra tabla.

___________________________________________________________________________________________________ _
Carrera 31 No. 35 -12 Oficina 303 Edificio Concasa Telfono 57 - 7 634 47 86 E-mail info@cooprac.com www.cooprac.com

11

El anterior anlisis no pretende ser un esquema de programacin ni sentar estrategias de mapeo, solo trata de mostrar los diferentes casos que se pueden recrear, pues en ltima un problema puede ser resuelto de infinitas formas, ya queda en nuestras manos escoger la ms optima. Bucaramanga, Octubre 25 de 2006 Elabora:

Jess David Rueda Polo Ing. Consultor Divisin de Investigacin y Nuevas Tecnologas. Cooprac LTDA.

___________________________________________________________________________________________________ _
Carrera 31 No. 35 -12 Oficina 303 Edificio Concasa Telfono 57 - 7 634 47 86 E-mail info@cooprac.com www.cooprac.com

12

Control de Versiones

Responsable
Jess David Rueda Polo

Accin
Elaboracin

Fecha
2006/10/25 13:00:00

Version
1.0

___________________________________________________________________________________________________ _
Carrera 31 No. 35 -12 Oficina 303 Edificio Concasa Telfono 57 - 7 634 47 86 E-mail info@cooprac.com www.cooprac.com

13

You might also like