用 Slice 扩展 OpenJPA 应用程序
2010-10-09 08:13:28 来源:WEB开发网本节将依次就这些可配置的策略详细介绍 Slice 与分布式数据库环境相关的运行时行为。
Slice 内的数据分布策略
Slice 不要求任何的数据库模式的变更。而基于分区的类似的持久性解决方案通常都需要向数据库模式添加一个特殊的列来识别分区标识。Slice 不需要这类额外的模式层的信息,因为它根据持久性实例的逻辑名维护了实例和其原始数据库分区间的关联。这种关联是在从一个特定的片读出持久性实例时建立的。但当新的实例正在持久化时,Slice 并不能决定哪个数据库分区应与这个新实例相关联。因此,应用程序必须指定与新实例相关联的那个片。应用程序就是通过数据分布策略指定与新实例相关联的片的。这个策略可以在 persistence.xml 内根据如下所示配置:
<property
name="openjpa.slice.DistributionPolicy"
value="acme.UserDistributionPolicy"/>
这个属性值指定 org.apache.openjpa.slice.DistributionPolicy 接口的一个用户实现的全限定类名。这个接口协议允许用户应用程序决定这个新持久项的逻辑片。
清单 2. 数据分布策略的接口协议
package org.apache.openjpa.slice;
public interface DistributionPolicy {
String distribute(Object pc, List<String> slices, Object context);
}
输入参数:
pc 是要被持久化的实例。这个实例与作为输入参数传递至 EntityManager.persist(pc) 的是同一个实例。
slices 是逻辑片标识的一个不可变列表。这个列表不包含目前不可连接的那些片。
context 是一个保留为未来使用的不透明对象。一般地,就实现而言,这个上下文与当前的持久性上下文相同。这个隐式语义并不能保证未来的使用。
- ››扩展Axis2框架,支持基于JVM的脚本语言
- ››扩展WebSphere Portal V6个性化功能
- ››扩展JavaScript的时候,千万要保留其原来的所有功...
- ››扩展数据:如何为 Model 750 服务器选择 I/O 扩展...
- ››扩展 JDT 实现自动代码注释与格式化
- ››扩展 secldap 的功能以验证多个数据源
- ››扩展 JUnit4 以促进测试驱动开发
- ››扩展 JUnit 测试并行程序
- ››扩展的ToolStripEx控件
- ››扩展 Eclipse 的 Java 开发工具
- ››扩展 Eclipse 辅助和规范开发流程
- ››扩展方法 DataTable 和List 相互转换
更多精彩
赞助商链接