La capa de persistencia de una aplicación es la pieza que permite almacenar, recuperar, actualizar y eliminar el estado de los objetos que necesitan persistir en un sistema gestor de datos.
En el caso del mapeo objeto-relacional, un ORM es una capa que permite relacionar objetos con un modelo de datos relacional, ocultando todo el mecanismo de conexión al motor de base de datos, y también no teniendo que escribir las sentencias SQL necesarias para la gestión de los datos.
La capa de persistencia traduce entre los dos modelos de datos: desde objetos a registros y desde registros a objetos. Así, si el programa quiere grabar un objeto, entonces llama al motor de persistencia, el motor de persistencia traduce el objeto a registros y llama a la base de datos para que guarde estos registros.
De este modo el programa sólo ve que puede guardar y recuperar objetos, como si estuviera programado para una base de datos orientada a objetos. Y la base de datos sólo ve que guarda y recupera registros como si el programa estuviera dirigiéndose a ella de forma relacional.
Dispones de múltiples alternativas como desarrollador en Java cuando pretendas trabajar con mapeadores O/R. Hay tres comunidades que están implicadas en el mundo de la persistencia O/R de Java de forma activa:
- Organizaciones basadas en el estándar,
- Comunidades código abierto (open source) y
- Grupos comerciales.
Las comunidades open source incluyen importantes tecnologías, entre ellas Hibernate y el framework Spring.
Las alternativas más importantes basadas en el estándar, son EJB 3.0 y JDO.
Entre las implementaciones comerciales se puede resaltar TopLink.
Cada uno de los mecanismos de mapeo O/R tiene una dependencia particular en el conector JDBC para poder comunicarse con la base de datos de una forma eficiente. Si el conector JDBC que participa en la comunicación no es óptimo, la posible gran eficiencia de cualquier framework quedará debilitada. Por tanto, seleccionar el driver JDBC que mejor se adapte a la aplicación es esencial a la hora de construir un sistema eficiente en el que intervenga un mecanismo de mapeo O/R.
Enterprise JavaBean
Java Data Objects