Java Data Objects ( JDO ) es una especificación para la persistencia de objetos Java . Una de sus características es la transparencia de los servicios de persistencia respecto al modelo de dominio . Los objetos persistentes de JDO son clases ordinarias del lenguaje de programación Java ( POJO ); no se requiere que implementen ciertas interfaces ni que hereden de clases especiales. JDO 1.0 se desarrolló bajo el Proceso de la Comunidad Java como JSR 12. JDO 2.0 se desarrolló bajo JSR 243 y se publicó el 10 de mayo de 2006. JDO 2.1 se completó en febrero de 2008, desarrollado por el proyecto Apache JDO . JDO 2.2 se publicó en octubre de 2008. JDO 3.0 se publicó en abril de 2010.
La persistencia de objetos se define en los metarchivos XML externos , que pueden tener extensiones específicas del proveedor. Los proveedores de JDO proporcionan a los desarrolladores optimizadores que modifican los archivos de clase Java compilados para que puedan persistirse de forma transparente. (Cabe señalar que la especificación JDO no exige la optimización del código de bytes, aunque es el mecanismo comúnmente utilizado para implementar sus requisitos). Actualmente, los proveedores de JDO ofrecen varias opciones de persistencia, por ejemplo, en RDBMS , en OODB o en archivos .
Las clases mejoradas de JDO son portables entre las implementaciones de diferentes proveedores. Una vez mejorada, una clase Java puede utilizarse con cualquier producto JDO de cualquier proveedor.
JDO se integra con Java EE de varias maneras. En primer lugar, la implementación del proveedor puede proporcionarse como un conector JEE . En segundo lugar, JDO puede funcionar en el contexto de los servicios de transacciones JEE .
JDO vs. EJB3 vs. JPA
La especificación Enterprise JavaBeans 3.0 (EJB3) también abarcaba la persistencia, al igual que EJB v2 con Entity Beans . Ha habido conflictos de estándares entre los dos organismos de estandarización en cuanto a la primacía. JDO cuenta con varias implementaciones comerciales.
Finalmente, la persistencia se separó de "EJB3 Core" y se creó un nuevo estándar: la API de persistencia de Java (JPA). JPA utiliza el javax.persistencepaquete y se especificó inicialmente en un documento independiente dentro de la especificación EJB3 JSR 220 , pero posteriormente se trasladó a su propia especificación JSR 317. Es importante destacar que nojavax.persistence requiere un contenedor EJB y, por lo tanto, funciona también en un entorno Java SE, como siempre lo ha hecho JDO. Sin embargo, JPA es un estándar de mapeo objeto-relacional (ORM), mientras que JDO es tanto un estándar de mapeo objeto-relacional como un estándar de persistencia de objetos transparente. Desde el punto de vista de la API, JDO es independiente de la tecnología del almacén de datos subyacente, mientras que JPA está dirigido a almacenes de datos RDBMS (aunque existen varios proveedores de JPA que admiten el acceso a almacenes de datos no relacionales a través de la API de JPA, como DataNucleus y ObjectDB).
Las principales implementaciones comerciales y proyectos de código abierto de JDO también ofrecen una implementación de API JPA como acceso alternativo a sus motores de persistencia subyacentes, que anteriormente solo se exponían a través de JDO en los productos originales. Existen numerosas implementaciones de código abierto de JDO.
Nuevas funciones en JDO versión 2 no presentes en la versión 1
- Concepto de grafos de objetos desconectados
- Descriptores de mapeo ORM estandarizados (para implementaciones JDO basadas en ORM)
- Mejoras en JDOQL (Formato de cadena única; se exige mayor compatibilidad con métodos String, Map y Math).
- Obtén, por ejemplo, un
Connectiondejavax.jdo.PersistenceManager - Más: Consultas con nombre (pm.newNamedQuery), FetchPlan, Sequence, Eliminar por consulta, múltiples objetos de usuario en PM
Implementaciones de referencia de JDO
- JDO 1.0 : FOStore
- JDO 2.0 : JPOX 1.1
- JDO 2.1 : JPOX 1.2
- JDO 2.2 : DataNucleus AccessPlatform 1.0.1
- JDO 3.0 : DataNucleus AccessPlatform 2.1.0
- JDO 3.1 : DataNucleus AccessPlatform 3.2.0
- JDO 3.2 : DataNucleus AccessPlatform 5.2.0
Véase también
Bibliografía
- Jordan, David; Russell, Craig (22 de abril de 2003). Java Data Objects (1.ª ed.). O'Reilly Media . pág. 384. ISBN 0-596-00276-9.
- Tyagi, Sameer; Vorburger, Michael; McCammon, Keiron; Bobzin, Heiko (21 de septiembre de 2003). Objetos de datos básicos de Java (1ª ed.). Prentice Hall . pag. 576.ISBN 0-13-140731-7.
- Ezzio, David (6 de junio de 2003). Uso y comprensión de los objetos de datos de Java (1.ª ed.). Apress . pág. 456. ISBN 1-59059-043-0Archivado del original el 23 de diciembre de 2010. Consultado el 8 de febrero de 2010 .
Enlaces externos
- Especificación JDO 1.0
- Especificación JDO 2.0
- Especificación JDO 2.1
- Especificación JDO 2.2
- Especificación JDO 3.0
- Mapeo objeto-relacional
- Plataforma empresarial Java
- Solicitudes de especificación de Java
- API de Java