La diferencia entre hibernar y eclipselink
Hibernate es un marco de trabajo de mapeo relacional/objeto de código abierto y un servicio de consulta. Encapsula JDBC en un objeto liviano y es responsable de mapear clases Java a tablas de bases de datos y tipos de datos Java a tipos de datos SQL. Hibenate comenzó a admitir la arquitectura multiinquilino en la versión 4.0, utilizando bases de datos independientes o Sechma independiente para diferentes inquilinos, y planea admitir el modo de tabla de datos compartidos en la versión 5.0.
Hay tres modos multiinquilino en Hibernate 4.0. Las siguientes configuraciones están disponibles a través de la propiedad hibernate.multiTenancy:
Ninguno: no multiinquilino, este es el valor predeterminado. .
Modo: Un esquema por inquilino.
Base de datos: Un inquilino tiene una base de datos.
Discriminador: Tabla de datos compartida por inquilinos. Planeado para implementarse en 5 años de hibernación
EclipseLink
EclipseLink es un proyecto de servicio de capa de persistencia de código abierto administrado por la Fundación Eclipse. Proporciona a los desarrolladores de Java un marco extensible para trabajar. Interactuar con diversos servicios de datos (como bases de datos, servicios web, mapeo XML de objetos (OXM), sistemas de información empresarial (EIS), etc. Actualmente, los estándares de capa de persistencia admitidos incluyen:
API de persistencia de Java (JPA)
Arquitectura Java para enlace XML (JAXB)
Arquitectura del servidor de conexión Java (). JCA)
Objetos de datos de servicio (SDO)
EclipseLink se conocía anteriormente como Oracle TopLink. En 2007, Oracle donó la mayor parte de este último a la Fundación Eclipse, y al año siguiente Sun seleccionó EclipseLink como la implementación de referencia de JPA 2.0.
Nota: Actualmente, EclipseLink2.5 es totalmente compatible con JPA2.1 (JSR 338) lanzado en 2013.
Además de la implementación completa del estándar JPA, EclipseLink también proporciona un buen soporte y soluciones flexibles para el aislamiento multiinquilino en entornos SaaS.
Aislamiento de aplicaciones
Contenedores aislados/Servidores de aplicaciones
Aislamiento de aplicaciones de contenedores/servidores de aplicaciones compartidos
Compartidos dentro de la misma aplicación En caché pero fábrica de administrador de entidad aislada.
Fábrica de administradores de entidades compartidas, pero cada administrador de entidades independiente
Aislamiento de datos
Base de datos independiente
Modo aislado/Espacios de tablas
Tablas aisladas
Tablas compartidas pero filas aisladas
Filtrado de consultas
Base de datos privada virtual (VPD) de Oracle
Para múltiples Aislamiento de la fuente de datos de inquilinos, existen principalmente las siguientes soluciones
El multiinquilino de tabla única se basa en la columna discriminadora de inquilinos para aislar las filas de la tabla para lograr el uso compartido de la tabla por parte de múltiples inquilinos.
El arrendamiento múltiple de inquilinos de tablas se basa en discriminadores de inquilinos de tablas para aislar tablas e implementar un inquilino por tabla, más o menos similar al modo independiente de la base de datos compartida anterior.
El arrendamiento múltiple de la base de datos privada virtual (VPD) se basa en la propia política de acceso de seguridad de Oracle VPD (basada en la cláusula donde de SQL dinámico) para implementar tablas compartidas de múltiples inquilinos.
Se recomienda leer este artículo: /java/j-lo-dataMultitenant/, es bueno.