皮皮网

皮皮网

【文档下载平台源码】【约课源码免费】【授权挖矿源码】hma源码

时间:2024-11-26 22:18:23 分类:百科

1.hibernate 和eclipselink的区别

hma源码

hibernate 和eclipselink的区别

       Hibernate

       Hibernate 是一个开放源代码的对象/关系映射框架和查询服务。它对 JDBC 进行了轻量级的对象封装,负责从 Java 类映射到数据库表,并从 Java 数据类型映射到 SQL 数据类型。在 4.0 版本 Hibenate 开始支持多租户架构——对不同租户使用独立数据库或独立 Sechma,并计划在 5.0 中支持共享数据表模式。

       åœ¨ Hibernate 4.0 中的多租户模式有三种,通过 hibernate.multiTenancy 属性有下面几种配置:

       NONE:非多租户,为默认值。

       SCHEMA:一个租户一个 Schema。

       DATABASE:一个租户一个 database。

       DISCRIMINATOR:租户共享数据表。计划在 Hibernate5 中实现

       EclipseLink

       EclipseLink 是 Eclipse 基金会管理下的开源持久层服务项目,为 Java 开发人员与各种数据服务(比如:数据库、web services、对象XML映射(OXM)、企业信息系统(EIS)等)交互提供了一个可扩展框架,目前支持的持久层标准中包括:

       Java Persistence API (JPA)

       Java Architecture for XML Binding (JAXB)

       Java Connector Architecture (JCA)

       Service Data Objects (SDO)

       EclipseLink 前身是 Oracle TopLink,文档下载平台源码 å¹´ Oracle 将后者绝大部分捐献给了 Eclipse 基金会,次年 EclipseLink 被 Sun 挑选成为 JPA 2.0 的参考实现。

       æ³¨: 目前 EclipseLink2.5 完全支持 年发布的 JPA2.1(JSR ) 。

       åœ¨å®Œæ•´å®žçŽ° JPA 标准之外,针对 SaaS 环境,在多租户的隔离方面 EclipseLink 提供了很好的支持以及灵活地解决方案。

       åº”用程序隔离

       éš”离的容器/应用服务器

       å…±äº«å®¹å™¨/应用服务器的应用程序隔离

       åŒä¸€åº”用程序内的共享缓存但隔离的 entity manager factory

       å…±äº«çš„ entity manager factory 但每隔离的 entity manager

       æ•°æ®éš”离

       éš”离的数据库

       éš”离的Schema/表空间

       éš”离的表

       å…±äº«è¡¨ä½†éš”离的行

       æŸ¥è¯¢è¿‡æ»¤

       Oracle Virtual Private Database (VPD)

       å¯¹äºŽå¤šç§Ÿæˆ·æ•°æ®æºéš”离主要有以下方案

       Single-Table Multi-tenancy,依靠租户区分列(tenant discriminator columns)来隔离表的行,实现多租户共享表。

       Table-Per-Tenant Multi-tenancy,依靠表的租户区分(table tenant discriminator)来隔离表,实现一租户一个表,大体类似于上文的共享数据库独立Schema模式。

       Virtual Private Database(VPD ) Multi-tenancy,依靠 Oracle VPD 自身的安全访问策略(基于动态SQL where子句特性),实现多租户共享表。

       æŽ¨èé˜…读这篇文章:/java/j-lo-dataMultitenant/,讲的不错。