WEB开发网
开发学院软件开发Java 用 Slice 扩展 OpenJPA 应用程序 阅读

用 Slice 扩展 OpenJPA 应用程序

 2010-10-09 08:13:28 来源:WEB开发网   
核心提示: Slice 引入了抽象的虚拟数据库来绕过底层的物理数据库分区或划分,一个启用了 Slice 的应用程序内持久单元连接到的是单一的一个虚拟数据库,用 Slice 扩展 OpenJPA 应用程序(3),而这个虚拟数据库则可通过恰当的 JDBC 驱动器将所有的持久操作多路传输给实际的物理数据库,比如说

Slice 引入了抽象的虚拟数据库来绕过底层的物理数据库分区或划分。一个启用了 Slice 的应用程序内持久单元连接到的是单一的一个虚拟数据库,而这个虚拟数据库则可通过恰当的 JDBC 驱动器将所有的持久操作多路传输给实际的物理数据库。比如说,有一个启用了 Slice 的应用程序,它被配置成使用四个片或分区,然后在这四个片上并行执行一个 JPA 查询,比如 select c from Customer c where c.age > 20 order by c.age。每个片各自排序了的执行结果被合并,并且在内存内由虚拟数据库再次进行排序,之后才会呈现给此应用程序。由于从用户应用程序的角度看,这个虚拟数据库接口提供了与单个数据库相同的 API,因而应用程序代码和数据库模式均不需要修改就能从一个单数据库调整到一个分布的、分区数据库环境。这是因为 Slice 内的虚拟数据库抽象遵循的是 复合设计模式。这种无缝的特性是 Slice 最为强大的实用特性。

有一点值得注意,若是为每个持久单元配置一个单独的分区,或是一个持久单元,配置每个 EntityManager 来连接一个分区,这样的处理分区的方式是站不住脚的。

为什么呢?这是因为 JPA 规范对持久性上下文的管理实例施加的了一个类似组的行为。

配置 Slice

使用 Slice 只需重新配置,一个应用程序就可以升级到一个分区的数据库环境。本节介绍了 Slice 的用户配置属性以及它们如何表示不同的功能。Slice 的配置使用了与配置任何标准 JPA 运行时(比如,让 META-INF/persistence.xml 资源对类路径可视)相同的机制。META-INF/persistence.xml 通常包含特定于提供者的属性,比如名称-值对,此外还有其他的一些 JPA 规范定义的属性,比如持久性类名或映射描述符。特定于 Slice 的属性在特定于提供者的属性节内提及,以 openjpa.slice.* 作为前缀。

上一页  1 2 3 4 5 6 7 8  下一页

Tags:Slice 扩展 OpenJPA

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接