用 Slice 扩展 OpenJPA 应用程序
2010-10-09 08:13:28 来源:WEB开发网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.* 作为前缀。
- ››扩展Axis2框架,支持基于JVM的脚本语言
- ››扩展WebSphere Portal V6个性化功能
- ››扩展JavaScript的时候,千万要保留其原来的所有功...
- ››扩展数据:如何为 Model 750 服务器选择 I/O 扩展...
- ››扩展 JDT 实现自动代码注释与格式化
- ››扩展 secldap 的功能以验证多个数据源
- ››扩展 JUnit4 以促进测试驱动开发
- ››扩展 JUnit 测试并行程序
- ››扩展的ToolStripEx控件
- ››扩展 Eclipse 的 Java 开发工具
- ››扩展 Eclipse 辅助和规范开发流程
- ››扩展方法 DataTable 和List 相互转换
更多精彩
赞助商链接