Openbiz 数据对象
Openbiz通过BizDataObj类映射数据库中的表到数据对象(DO)。每一个数据对象都定义了一个表名和表中的列与数据对象字段的映射关系。下图展示的就是一个最简单的数据对象与单一数据表之间的影射关系。
数据对象元数据
Openbiz数据对象有一个核心类"BizDataObj",这个类的元数据定义如下:
BizDataObj 元素
BizDataObj 元素是一个数据对象元数据的跟元素,它有三个子元素,别离是BizFieldList, TableJoins 和 ObjReferences。BizDataObj元素具有如下属性:
Name
Name 属性是一个数据对象的标识符。Name属性应该与数据对象的文件名完全一致。
Description
Description 属性描述了数据对象的功能与体例。
Class
Class 属性指定了该对象的实现类。
DBName
DBName 属性是在Config.xml 文件中定义的数据库名称。
Table
Table 属性是数据对象所映射的数据库的表名字。我们通常把表在BizDataObj元素中也将其成为"根基表"。
IDGeneration
IDGeneration 属性指定了根基表的主键的生成体例。它支持的值可以是"Openbiz", "Identity", "Sequence:seqname", "GUID", "UUID", 或其它
SearchRule
SearchRule 属性为从数据源(数据表)来获得数据时附加搜索法则。
例如:SearchRule="[start_time]>'1999-10-20'"
SortRule
SortRule属性为从数据源(数据表)来获得数据时附加排序法则。
例如: SortRule="[start_time] ASC"
OtherSQLRule
OtherSQLRule 属性为从数据源(数据表)来获得数据时附加用户指定的法则。
例如: OtherSQLRule = "GROUP BY [position] HAVING [age]>30"
AccessRule
AccessRule 属性指定了一个附加的搜索法则来限定命据拜候节制
例如: AccessRule="[owner_id]='{@profile:Id}’'"
CreateCondition
CreateCondition 属性为数据记实的成立行为设定了拜候法则 (ACL)
例如: CreateCondition="project.create"。 这里 "project"是一个资源名,而 "create" 是一个行为名,它们都是在Cubi模块的XML文件ACL章节中 被定义的。
UpdateCondition
UpdateCondition属性为数据记实的更新行为设定了拜候法则 (ACL)
例如: UpdateCondition="project.update"
DeleteCondition
CreateCondition属性为数据记实的删除行为设定了拜候法则 (ACL)
例如: DeleteCondition="projectlete"
Uniqueness
Uniqueness 属性设定了数据是否唯一的有效性校验。
语法: Uniquess ="fld1,fld2;fld3,fld4;.."
Openbiz将检测(fld1,fld2) 和 (fld3,fld4)的唯一性,如果数据不是唯一将会抛出异常
BizField 元素
BizField元素描述了数据对象的字段,一个字段通常常使用于映射到一个表格得列,它也可以是一个SQL表达式或计较后的值。BizField元素具有如下属性:
Name
Name 属性是BizField的标识符。
Join
Join 属性是在<Join>元素中定义的名字。如果"Join"属性在BizField元素中指定,"Column"属性指向到毗连表的列。
Column
Column 属性默认是根基表的列。如果"Join"属性在BizField元素中指定,"Column"属性指向到毗连表的列。
SQLExpr
SQLExpr属性映射数据库引擎的SQL表达式为一个数据对象的字段。如果SQLExpr被指定,必须确定Column属性是空的,不然会引起毛病。
典范: 《BizField Name="FullName" Column="" SQLExpr="CONCAT([FirstName],'',[LastName])"..>
Type
Type 属性设定了字段的数据类型,Openbiz数据对象所支持的数据类型为Text, Number, Date, Datetime, Currency, Phone, Blob.
Format
Format 属性指定了目标字段的数据现实格局,不合的数据类型会有不合的格局定义。我们将在数据类型与格局章节对其进行详细讲授。
Value
Value 属性是一个按指定字段计较后得出的数值。Value属性支持简单表达式。
例如: <BizField Name="Precentage" Column="" Value="[corrects]/[total]"...>。 其中 [corrects] 与 [total] 是在同一个数据对象中别离定义的2个字段。
DefaultValue
DefaultValue 属性定义了一个新记实的默认值。
Validator