Archive for the ‘ORM’ Subject

JPA: Java Persistence API

Wednesday, November 30th, 2011

Hace muchos años que venimos desarrollando aplicaciones con frameworks de ORM, como Hibernate, TopLink, iBatis, para manejar la persistencia de las mismas. JPA es una especificación cada día mas utilizada, que intenta estandarizar el “acceso” a todos ellos.

 

Necesidad de estandarización

Existen muchos aspectos importantes en las aplicaciones que el lenguaje no nos provee, por ejemplo persistencia, transaccionalidad, seguridad, etc. Para lograr estos aspectos, se han hecho importantes implementaciones en contenedores de nuestro codigo, asi nuestro modelo queda limpio y alguien por afuera sería el encargado de manejar todos estas cuestiones transversales a nuestra aplicación. (more…)

Fluent NHibernate Parte 2

Friday, September 10th, 2010

Fluent NHibernate logo En el post anterior, se vio un mapeo de un dominio muy sencillo usando Fluent nHibernate comparado directamente con el tradicional mapeo XML.

En esa acotada comparación FN ofrecía una modalidad de configuración mucho más cómoda y que permitía explotar las capacidades de la IDE de refactorizar, encontrar símbolos, etc. y obtener un cierto feedback en tiempo de compilación.

Un par de puntos en que el mapeo en XML produjo un resultado distinto (subjetivamente mejor):

  • El enum Estado para un Post fue mapeado como un string (usando conventions).
  • Algunas relaciones n:m que sabemos positivamente van a ser leídas de ambos lados crearon una tabla intermedia sin clave. Esto se debe a que FN usa colecciones tipo BAG por defecto mientras que nuestro mapeo hbm.xml estaba usando SET

Como la idea era obtener un esquema idéntico y que además funcione, los objetivos de este post son:

  • Agregar un par de cambios que alteren la generación de mapeo por defecto.
  • Agregar algunos tests para saber si al menos nuestras entidades pueden ser persistidas.

(more…)

Fluent nHibernate

Friday, August 13th, 2010

Fluent NHibernate logoDentro de Hexacta, el uso de nHibernate dentro de la población .Net se ha popularizado. El hecho de tener gente con experiencia en Hibernate ayudó también a la inclución de nHibernate en nuestro stack tecnológico.

UPDATE: la siguiente parte de este post está disponible aquí

Por la misma razón, algunas prácticas importadas de nuestros primos de Java continuan en forma casi indiscutida, una de ellas, la configuración de mapeos mediante XML y eventualmente la misma configuración de la factory por XML. Si bien XML es una opción válida, vale la pena mirar opciones.

Una alternativa es la de usar atributos para el mapeo, está disponible desde las primeras versiones de nHibernate pero no cuenta con el apoyo popular de aquellos más puristas que no desean ver el su modelo de dominio con datos foráneos como es la persistencia.

(more…)