Archive for the ‘ORM’ Subject

Agregando funcionalidad a objetos de dominio en Grails

Tuesday, May 21st, 2013

En este post vamos a ver algunos conceptos interesantes de Grails y Groovy que podemos aplicar en nuestros objetos de dominio, y un ejemplo práctico para implementar auditoria a nuestras entidades de dominio.
(more…)

Transacciones a nivel Servicio con NHibernate

Wednesday, August 22nd, 2012

Frecuentemente, cuando desarrollamos una aplicación con el patrón MVC, surge la necesidad de realizar transacciones, lo que genera, en varios casos, dolores de cabeza… transacciones a nivel controller? A nivel Servicio? Y el TransactionScope? Adicionalmente… usar TransactionScope con Nhibernate es un generador natural de problemas… y no siempre tenemos el tiempo para ver como solucionarlos.

(more…)

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…)