云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

京东云_腾讯企业邮箱找回密码_怎么买

小七 141 0

许多aBPM场景(在BPM和/或独立应用程序的上下文中)、在PO系统上运行的自定义实现和/或其他组件需要额外的数据(例如,云服务器如何,对于任务),这些数据不能直接存储在数据库中或通过BPM API存储。一个典型的原因是API不支持对这些数据的访问(比如在任务/流程的bpmapi中)。另一个原因可能是您的采购订单系统的版本在当前版本中不支持这种访问,但在下一个版本中不支持。或者对于一个完整的持久性/数据库模型来说,数据是细粒度的、不允许的或者是暂时的。当然,aBPM框架有自己的持久层,但是这里的数据将更多地存储在aBPM进程的一个级别上,而不是存储在任务层的细节中。

在这个博客中,有哪些云服务器,我想向您展示如何用最小的数据库占用空间为您要存储的所有数据创建一个非常灵活和通用的持久层在我们开始讨论实现细节之前,首先介绍一些通用持久层的理论背景和要求:

1。共同要求

1.1通用持久性方法必须非常灵活,不需要关于必须存储的数据的信息。原因很简单,今天我们只知道今天必须存储的一个或一小部分数据,但要求/应用范围将发生变化,下周或之后的一周,更多的数据与存储更相关。

1.2对这些数据的初始访问必须快速,稳定且独特。

1.3从通用接口到可持久化格式的技术转换必须封装一些/许多代表大多数用例的服务操作。

1.4可通过NWA Java调度程序调度的作业,以清理数据库,使DB存储保持良好状态并移除数据库中不必要的数据

2。解决方法

2.1要求1.1的答案必须分为两部分。首先,物联网产品,数据部分本身的数据库结构不能用于多个列等。如果这样做,则附加字段的每次更改都取决于数据库表的扩展。这里的解决方案是一个CLOB列(字符大对象)。这样的数据库列将由数据库本身管理和扩展(数据库中的空间)。

第二,大淘客,CLOB列中的数据应以XML格式的键值组合存储。XML的优点是,大数据提供,这样的内容可以很容易地编组和解编组为Java对象。XML格式中的key-value/s方法还有助于通过键访问未shalled Java对象中的特定数据。值而不是每个键的单个值允许存储一个键的值列表(例如,在多个值的情况下,如最近10个使用的最终用户选择的列表等)

2.2需求1.2的解决方案是一个唯一的id,如BPM任务实例id或唯一的用户名或自己生成的唯一标识符。对于其他任务数据,BPM任务实例id最好,对于其他用户数据,最好使用唯一的登录名。标识符可以通过主键的字符串列来实现。

2.3需求1.3可以通过JEE默认方法的无状态会话bean(EJB)来实现。实现本身必须将Java对象(如将服务与持久层分离的DTO)转换为通用XML格式。数据将通过持久性管理器与常规JPA实体对象和操作一起存储。提示:如果不能使用JPA,也可以通过JDBC调用进行常规SQL查询。

2.4要求1.4也可以通过默认的SAP作业实现实现,可以在help.sap.com帮助开发和调度作业。先决条件是服务层有一些操作可以从通用持久层读取和删除一些数据(例如,读取所有唯一id、按唯一id删除条目等)

现在让我们看看一些实现细节(提示:不会显示所有文件,排除的是属性或常量等文件,但有趣的部分是:

DC结构

您需要一个字典DC(用于持久性表)、一个EJBDC(用于持久性、服务和数据对象实现)和一个EARDC(用于部署)。结构应该类似于以下:

提示:在我的例子中,EAR DC的名称与EJB和DIC DC不同,只是因为EAR DC以前存在,我已经重用了现有的DC进行部署。

EJB DC中存在一些Java包和类,现在必须详细地发现它们:

DataPair数据对包含键值结构的XML表示的Java实现:

类包含处理这些内容的默认getter和setter操作。

TaskDataDto包含TaskDataService层的特定结构。结构表示从外部可见的视图:

TaskDataEntry是JPA实体对象的类:

TaskDataService包含相应接口的实现,该接口使用JPA查询创建,更新或删除通用持久性表中的额外任务数据。

在构建和部署DCs之后,服务层可以在aBPM场景和/或其他Java实现中使用。为了方便测试,服务层也可以在ejbexplorer中执行,结果可以通过SQL数据浏览器检查: