當前位置:編程學習大全網 - 源碼下載 - hibernate 和eclipselink的區別

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, 2007年 Oracle 將後者絕大部分捐獻給了 Eclipse 基金會,次年 EclipseLink 被 Sun 挑選成為 JPA 2.0 的參考實現。

註: 目前 EclipseLink2.5 完全支持 2013 年發布的 JPA2.1(JSR 338) 。

在完整實現 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/,講的不錯。

  • 上一篇:Javastringtrim源代碼
  • 下一篇:源代碼編程玩遊戲
  • copyright 2024編程學習大全網