Dorado 9 : UpdateItem(DCUG)

简介

UpdateItem被用于UpdateAction中,用于定义UpdateAction可以提交的DataSet的基本信息,在UpdateAction中可以定义一到多个UpdateItem,从而方便你可以同时提交多个DataSet。

详细属性说明

alias

用于描述这些被提交数据的别名,默认情况下系统会直接使用DataSet的id作为该属性名。

autoResetEntityState

是否自动重置所有提交到服务端的数据实体的状态。

dataPath

用于描述希望提交DataSet中哪些数据的数据路径。

此属性常用的写法有如下三种:!DIRTY_TREE、!CASCADE_DIRTY、[#dirty]。

CASCADE_DIRTY和DIRTY_TREE都是UpdateAction特别注册到DataPath中的一种自定义片段。 普通的[#dirty]状态判断只判断数据实体自身的状态是否"脏"状态; 而CASCADE_DIRTY会进一步判断数据实体中级联子数据实体的状态,只要有任何一个子数据实体的状态为"脏"则该数据实体也将被认为是脏数据。 此时该数据实体包括其下属的所有子数据实体都将被提交。

DIRTY_TREE从字面上可以理解为是由所有脏数据构成的一棵树,只不过为维护这棵树结构的正确性有时我们还必须一同提交一些并不处于脏状态的数据。 所以DIRTY_TREE提交的是一颗尽可能精简的由脏数据构成的树。
DIRTY_TREE也可以视作是在CASCADE_DIRTY基础上提供的另一种选择,由于CASCADE_DIRTY计算规则,在执行提交的信息中通常会包含大量实际状态为"未修改"的数据实体。 DIRTY_TREE正式在此基础上对提交信息进行进一步的精简后的结果,具体做法是在保留数据关系的前提下剔除那些状态为"未修改"的数据实体。
例如,当数据树中某个节点的数据为"脏"时,系统将只提交该节点及其每一层的父节点,且在提交时维持他们之间原有的从属关系。

[#dirty]也是一种常用的dataPath定义方式,此表达式与CASCADE_DIRTY的不同点是只判断数据实体自身的状态,而忽略其中的级联子数据实体。

dataSet

DataSet或DataSet的ID。

firstResultOnly

用于传递给内部将使用到的dorado.DataPath#evaluate方法的options.firstResultOnly参数。 表示是否只提交dataPath返回结果中的第一个对象。

refreshMode

提交完成后如何刷新客户端提交的数据实体。支持如下4种模式:

  • none - 不对提交的数据实体进行刷新。这意味着不论提交成功与否,这些数据实体都会保持提交之前的状态。
  • state - 只刷新数据实体的状态。
  • value - 刷新数据实体中的数据和状态,但会忽略数据实体中的级联子数据实体。
  • cascade - 刷新数据实体中的数据和状态,包括数据实体中的级联子数据实体的数据和状态。

submitOldData

对于那些被修改的数据实体是否提交其原有的属性值。

submitSimpleProperty

只提交简单数据类型的属性,如String、boolean、int、Date等数据类型。 设置此属性起到的效果大致相当于只提交DataPath返回的结果中顶层的数据实体。

Attachments:

UpdateAction.PNG (image/png)