# com.eos.foundation.database.DatabaseUtil
# 构件包说明
本工具类实现了基本的数据库操作。
# 运算逻辑构件使用说明
该构件包包含以下构件:
注意
下列方法中的参数dsName,是指当前构件包中的contribution.eosinf文件中在module name="DataSource"的节点下配置的构件包引用数据源名称。如:
<module name="DataSource">
<group name="Reference">
<configValue key="default">default</configValue>
</group>
</module>
这是每个构件包默认就会有的配置,表示构件包中有个别名为default(这个default是<configValue>中的key的属性值)的数据源,它引用的是user-config.xml中配置的default(这个default是<configValue>的节点值)的数据源。 下面所列的运算逻辑中的参数dsName,应该传入的是<configValue>中的key的属性值,而不是在user-config.xml中配置的数据源的名字。
下面所列的运算逻辑源代码演示示例时,涉及到数据库中的CUST表。因此请确认数据库中是否存在CUST表,如果不存在,请先通过数据模型com.primeton.eos.foundation.example.data.datasetx生成CUST表,再做示例演示。
序号 | 方法 | 功能描述 |
---|---|---|
1 | count(String dsName, DataObject criteriaEntity) | 根据查询实体条件统计记录数 |
2 | countByTemplate(String dsName, DataObject template) | 根据SDO数据模板条件统计记录数 |
3 | deleteByCriteriaEntity(String dsName, DataObject criteriaEntity) | 根据查询条件实体删除记录,查询条件不能为空,如果为空将返回异常 |
4 | deleteByTemplate(String dsName, DataObject template) | 根据SDO数据模板查询条件删除记录,查询条件不能为空,如果为空将返回异常 |
5 | deleteEntity(String dsName, DataObject dataObject) | 根据主键删除一条记录 |
6 | deleteEntityBatch(String dsName, DataObject[] dataObjects) | 根据主键批量删除多条记录 |
7 | expandEntitiesRelation(String dsName, DataObject[] dataObjects, String property) | 扩展一个数据实体数组中每个实体对象的一个关联属性(如对一个懒加载的属性),会进行数据库的查询 |
8 | expandEntity(String dsName, DataObject dataObject) | 根据主键扩展查询一条记录,如果dataobject中有非主键的属性值,将根据主键查询出来覆盖原来的属性 |
9 | expandEntityByCriteriaEntity(String dsName, DataObject criteria, DataObject dataObject) | 根据查询条件实体的查询结果扩展一个实体 |
10 | expandEntityByTemplate(String dsName, DataObject template, DataObject dataObject) | 根据查询模板的查询结果扩展一个实体 |
11 | expandEntityWithLock(String dsName, DataObject dataObject) | 根据主键扩展记录,并且将当前记录锁定,如果dataobject中有非主键的属性值,将根据主键查询出来覆盖原来的属性 |
12 | expandLobProperty(String dsName, DataObject entity, String lobPropertyNames) | 获取实体的lob属性对应的值 |
13 | expandRelation(String dsName, DataObject dataObject, String property) | 扩展一个数据实体对象的一个关联属性(如对一个懒加载的属性),会进行数据库的查询 |
14 | getRelationEntities(String dsName, DataObject dataObject, String property) | 根据数据实体对象的关联属性获得关联实体对象数组,返回关联实体对象如果是多对一或一对一关联关系时,将关联的实体对象构造为数组返回;如果是一对多关联关系时,返回关联的实体对象数组 |
15 | getRelationEntity(String dsName, DataObject dataObject, String property) | 根据数据实体对象的关联属性获得关联实体对象,返回关联实体对象如果是多对一或一对一关联关系时,返回关联的实体对象;如果是一对多关联关系时,返回关联的实体对象的第一个对象值 |
16 | insertEntity(String dsName, DataObject dataObject) | 插入一条记录 |
17 | insertEntityBatch(String dsName, DataObject[] dataObjects) | 批量插入记录 |
18 | queryEntitiesByCriteriaEntity(String dsName, DataObject criteriaEntity) | 根据查询条件实体查询所有记录,根据查询条件实体指定查询Entity的字段 |
19 | queryEntitiesByCriteriaEntity(String dsName, DataObject criteriaEntity, int begin, int length) | 根据查询条件实体查询部分记录,根据查询条件实体指定查询Entity的字段 |
20 | queryEntitiesByTemplate(String dsName, DataObject template) | 根据SDO数据模板查询条件查询所有记录,会查询Entity的所有字段 |
21 | queryEntitiesByTemplate(String dsName, DataObject template, int begin, int length) | 根据SDO数据模板查询条件查询部分记录,会查询Entity的部分字段 |
22 | saveEntities(String dsName, DataObject[] dataObjects) | 保存多条记录 |
23 | saveEntity(String dsName, DataObject dataObject) | 保存一条记录 |
24 | updateEntity(String dsName, DataObject dataObject) | 更新一条记录 |
25 | updateEntityBatch(String dsName, DataObject[] dataObjects) | 批量更新记录 |
26 | updateEntityByCriteriaEntity(String dsName, DataObject value, DataObject criteriaEntity) | 根据criteria entity查询条件更新记录 |
27 | updateEntityByTemplate(String dsName, DataObject value, DataObject template) | 根据SDO数据模板查询条件更新记录 |
# count:根据查询条件实体条件统计记录数
# 【功能说明】
根据查询条件实体条件统计记录数。
# 【版本说明】
从EOS 6.0开始提供。
# 【引用路径】
- 本运算逻辑构件对应JAVA方法路径: com.eos.foundation.database.DatabaseUtil.count,包含在com.eos.foundation.jar中。
- 运算逻辑定义在构件包com.eos.foundation中。
# 【使用说明】
- 参数说明
类型 | 名称 | 数据类型 | 参数描述 |
---|---|---|---|
参数 | dsName | String | 数据源名称 |
参数 | criteriaEntity | DataObject | 查询条件实体 |
返回值 | out0 | int | 记录数 |
抛出异常说明 统计记录出错时抛出异常com.eos.system.exception.EOSRuntimeException。
规则说明 关于查询条件实体的说明请参考《EOS基础参考手册》中的"数据服务\CriteriaEntity"。
# 【参考案例】
示例:根据CUST表查询条件统计查询结果总记录数。
场景描述 用户维护CUST表,在通过查询条件实体对CUST查询操作时,根据条件进行统计CUST记录。
参数设置
类型 | 名称 | 数据类型 | 值 | 值类别 | 传递方式 |
---|---|---|---|---|---|
参数 | dsName | String | default | 常量 | 传引用 |
参数 | criteriaEntity | DataObject | criteria | 变量 | 传引用 |
返回值 | out0 | int | count | 变量 | 传引用 |
参数描述
- 第一个参数为数据源,更多的说明参见基本操作类DatabaseUtil中的注意
- 第二个参数是查询实体criteriaEntity
- 返回值是根据查询条件实体条件统计的记录数
其他说明 无。
调用前的bizContext
<bizContext>
<__root __id="0" __type="java:java.util.HashMap">
<criteria __id="1" __type="sdo:com.primeton.das.criteria.criteriaType">
<_entity __type="java:java.lang.String">com.primeton.eos.foundation.example.data.CUST</_entity>
<_select/>
<_expr __id="2" __type="java:com.primeton.ext.data.sdo.collection.ContainerAwareList">
<__entry __id="3" __index="0" __type="sdo:com.primeton.das.criteria.exprType">
<_op __type="java:java.lang.String">in</_op>
<_min/>
<_max/>
<_likeRule/>
<_dateRule/>
<_pattern/>
<_year/>
<_quarter/>
<_month/>
<_opProperty/>
<_ref/>
<_processNullValue/>
<CUSTID __type="java:java.lang.String">2,3</CUSTID>
</__entry>
</_expr>
<_and __collection="list"/>
<_or __collection="list"/>
<_not __collection="list"/>
<_order __collection="list"/>
<_orderby __collection="list"/>
<_group/>
<_distinct/>
<_association __collection="list"/>
<_ref __collection="list"/>
<_lock/>
</criteria>
</__root>
</bizContext>
- 等效的SQL语句
select count(*) from CUST where CUSTID in (2,3)
- 调用后的bizContext
<bizContext>
<__root __id="0" __type="java:java.util.HashMap">
<count __type="java:java.lang.Integer">2</count>
<criteria __id="1" __type="sdo:com.primeton.das.criteria.criteriaType">
<_entity __type="java:java.lang.String">com.primeton.eos.foundation.example.data.CUST</_entity>
<_select/>
<_expr __id="2" __type="java:com.primeton.ext.data.sdo.collection.ContainerAwareList">
<__entry __id="3" __index="0" __type="sdo:com.primeton.das.criteria.exprType">
<_op __type="java:java.lang.String">in</_op>
<_min/>
<_max/>
<_likeRule/>
<_dateRule/>
<_pattern/>
<_year/>
<_quarter/>
<_month/>
<_opProperty/>
<_ref/>
<_processNullValue/>
<CUSTID __type="java:java.lang.String">2,3</CUSTID>
</__entry>
</_expr>
<_and __collection="list"/>
<_or __collection="list"/>
<_not __collection="list"/>
<_order __collection="list"/>
<_orderby __collection="list"/>
<_group/>
<_distinct/>
<_association __collection="list"/>
<_ref __collection="list"/>
<_lock/>
</criteria>
</__root>
</bizContext>
# countByTemplate:根据SDO数据模板查询条件统计记录数
# 【功能说明】
根据SDO数据模板查询条件统计记录数。
# 【版本说明】
从EOS 6.0开始提供。
# 【引用路径】
- 本运算逻辑构件对应JAVA方法路径: com.eos.foundation.database.DatabaseUtil.countByTemplate,包含在com.eos.foundation.jar中。
- 运算逻辑定义在构件包com.eos.foundation中。
# 【使用说明】
- 参数说明
类型 | 名称 | 数据类型 | 参数描述 |
---|---|---|---|
参数 | dsName | String | 数据源名称 |
参数 | template | DataObject | SDO数据模板查询条件 |
返回值 | out0 | int | 记录数 |
抛出异常说明 统计记录出错时抛出异常com.eos.system.exception.EOSRuntimeException。
规则说明 无。
# 【参考案例】
示例:根据CUST模板统计查询结果总记录数。
场景描述 用户维护CUST表,根据CUST数据模板作为查询条件进行统计操作,如果模板中的对象都为空条件,则统计所有记录。
参数设置
类型 | 名称 | 数据类型 | 值 | 值类别 | 传递方式 |
---|---|---|---|---|---|
参数 | dsName | String | default | 常量 | 传引用 |
参数 | template | DataObject | template | 变量 | 传引用 |
返回值 | out0 | int | count | 变量 | 传引用 |
参数描述
- 第一个参数为数据源,更多的说明参见基本操作类DatabaseUtil中的注意
- 第二个参数是查询实体criteriaEntity
- 返回值是根据SDO数据模板查询条件统计的记录数
其他说明 无。
调用前的bizContext
<bizContext>
<__root __id="0" __type="java:java.util.HashMap">
<template __id="1" __type="sdo:com.primeton.eos.foundation.example.data.CUST">
<CUSTID/>
<CUSTCODE/>
<CUSTNAME/>
<BIRTH __type="java:java.util.Date">2009-09-09 00:00:00</BIRTH>
<SEX/>
<ADDRESS/>
<PHOTO/>
</template>
</__root>
</bizContext>
- 等效的SQL语句
select count(*) from CUST where BIRTH=to_date('2009-09-09','yyyy-MM-dd')
- 调用后的bizContext
<bizContext>
<__root __id="0" __type="java:java.util.HashMap">
<count __type="java:java.lang.Integer">2</count>
<template __id="1" __type="sdo:com.primeton.eos.foundation.example.data.CUST">
<CUSTID/>
<CUSTCODE/>
<CUSTNAME/>
<BIRTH __type="java:java.util.Date">2009-09-09 00:00:00</BIRTH>
<SEX/>
<ADDRESS/>
<PHOTO/>
</template>
</__root>
</bizContext>
# deleteByCriteriaEntity:根据查询条件实体删除记录
# 【功能说明】
根据查询条件实体删除记录,查询条件不能为空,如果为空将返回异常。
# 【版本说明】
从EOS 6.0开始提供。
# 【引用路径】
- 本运算逻辑构件对应JAVA方法路径: com.eos.foundation.database.DatabaseUtil.deleteByCriteriaEntity,包含在com.eos.foundation.jar中。
- 运算逻辑定义在构件包com.eos.foundation中。
# 【使用说明】
- 参数说明
类型 | 名称 | 数据类型 | 参数描述 |
---|---|---|---|
参数 | dsName | String | 数据源名称 |
参数 | criteriaEntity | DataObject | SDO查询条件实体 |
返回值 | out0 | int | 删除记录条数 |
抛出异常说明 删除出错时抛出com.eos.system.exception.EOSRuntimeException。
规则说明 关于查询条件实体的说明请参考《EOS基础参考手册》中的"数据服务\CriteriaEntity"。
# 【参考案例】
示例:根据查询条件实体删除CUST表的数据。
- 参数设置
类型 | 名称 | 数据类型 | 值 | 值类别 | 传递方式 |
---|---|---|---|---|---|
参数 | dsName | String | default | 常量 | 传引用 |
参数 | criteriaEntity | DataObject | criteriaEntity | 变量 | 传引用 |
返回值 | out0 | int | result | 变量 | 传引用 |
参数描述
- 第一个参数为数据源,更多的说明参见基本操作类DatabaseUtil中的注意
- 第二个参数是查询实体criteriaEntity
- 返回值是被修改记录返回值
其他说明 无。
调用前的bizContext
<bizContext>
<__root __id="0" __type="java:java.util.HashMap">
<criteriaEntity __id="1" __type="sdo:com.primeton.das.criteria.criteriaType">
<_entity __type="java:java.lang.String">com.primeton.eos.foundation.example.data.CUST</_entity>
<_select/>
<_expr __collection="list"/>
<_and __collection="list"/>
<_or __collection="list"/>
<_not __collection="list"/>
<_order __collection="list"/>
<_orderby __collection="list"/>
<_group/>
<_distinct/>
<_association __collection="list"/>
<_ref __collection="list"/>
<_lock/>
</criteriaEntity>
</__root>
</bizContext>
- 等效的SQL语句
delete from CUST
- 调用后的bizContext
<bizContext>
<__root __id="0" __type="java:java.util.HashMap">
<criteriaEntity __id="1" __type="sdo:com.primeton.das.criteria.criteriaType">
<_entity __type="java:java.lang.String">com.primeton.eos.foundation.example.data.CUST</_entity>
<_select/>
<_expr __collection="list"/>
<_and __collection="list"/>
<_or __collection="list"/>
<_not __collection="list"/>
<_order __collection="list"/>
<_orderby __collection="list"/>
<_group/>
<_distinct/>
<_association __collection="list"/>
<_ref __collection="list"/>
<_lock/>
</criteriaEntity>
<result __type="java:java.lang.Integer">2</result>
</__root>
</bizContext>
# deleteByTemplate:根据SDO数据模板查询条件删除记录
# 【功能说明】
根据SDO数据模板查询条件删除记录,查询条件不能为空,如果为空将返回异常。与deleteEntity不同的是,它可一次删除多条满足条件的记录。所有操作隶属于一个原子事务。
# 【版本说明】
从EOS 6.0开始提供。
# 【引用路径】
- 本运算逻辑构件对应JAVA方法路径: com.eos.foundation.database.DatabaseUtil.deleteByTemplate,包含在com.eos.foundation.jar中。
- 运算逻辑定义在构件包com.eos.foundation中。
# 【使用说明】
- 参数说明
类型 | 名称 | 数据类型 | 参数描述 |
---|---|---|---|
参数 | dsName | String | 数据源名称 |
参数 | template | DataObject | SDO数据模板(不一定需要主键字段,该构件可以删除所有满足条件的记录) |
返回值 | out0 | int | 删除的记录条数 |
抛出异常说明 删除出错时抛出com.eos.system.exception.EOSRuntimeException。
规则说明 无。
# 【参考案例】
示例:根据查询模板从CUST表中删除记录。
- 参数设置
类型 | 名称 | 数据类型 | 值 | 值类别 | 传递方式 |
---|---|---|---|---|---|
参数 | dsName | String | default | 常量 | 传引用 |
参数 | template | DataObject | template | 变量 | 传引用 |
返回值 | out0 | int | result | 变量 | 传引用 |
参数描述
- 第一个参数为数据源,更多的说明参见基本操作类DatabaseUtil中的注意
- 第二个参数是操作的SDO数据模板,这里作为删除条件的数据模板
- 返回值是根据数据模板条件删除的记录数
其他说明 无。
调用前的bizContext
<bizContext>
<__root __id="0" __type="java:java.util.HashMap">
<template __id="1" __type="sdo:com.primeton.eos.foundation.example.data.CUST">
<CUSTID __type="java:java.lang.Integer">4</CUSTID>
<CUSTCODE/>
<CUSTNAME/>
<BIRTH/>
<SEX/>
<ADDRESS/>
<PHOTO/>
</template>
</__root>
</bizContext>
- 等效的SQL语句
delete from CUST where CUSTID=4;
- 调用后的bizContext
<bizContext>
<__root __id="0" __type="java:java.util.HashMap">
<result __type="java:java.lang.Integer">0</result>
<template __id="1" __type="sdo:com.primeton.eos.foundation.example.data.CUST">
<CUSTID __type="java:java.lang.Integer">4</CUSTID>
<CUSTCODE/>
<CUSTNAME/>
<BIRTH/>
<SEX/>
<ADDRESS/>
<PHOTO/>
</template>
</__root>
</bizContext>
# deleteEntity:根据主键删除一条记录
# 【功能说明】
根据主键删除一条记录,不支持级联操作。
# 【版本说明】
从EOS 6.0开始提供。
# 【引用路径】
- 本运算逻辑构件对应JAVA方法路径: com.eos.foundation.database.DatabaseUtil.deleteEntity,包含在com.eos.foundation.jar中。
- 运算逻辑定义在构件包com.eos.foundation中。
# 【使用说明】
- 参数说明
类型 | 名称 | 数据类型 | 参数描述 |
---|---|---|---|
参数 | dsName | String | 数据源名称 |
参数 | dataObject | DataObject | SDO对象(必须包含主键字段) |
抛出异常说明 删除出错时抛出com.eos.system.exception.EOSRuntimeException。
规则说明 无。
# 【参考案例】
示例:从CUST表中删除一条记录。
场景描述 用户维护CUST表,选择一条CUST记录根据主键执行删除操作。
参数设置
类型 | 名称 | 数据类型 | 值 | 值类别 | 传递方式 |
---|---|---|---|---|---|
参数 | dsName | String | default | 常量 | 传引用 |
参数 | dataObject | DataObject | cust | 变量 | 传引用 |
参数描述
- 第一个参数为数据源,更多的说明参见基本操作类DatabaseUtil中的注意
- 第二个参数是操作的SDO对象cust
其他说明 无。
调用前的bizContext
<bizContext>
<__root __id="0" __type="java:java.util.HashMap">
<cust __id="1" __type="sdo:com.primeton.eos.foundation.example.data.CUST">
<CUSTID __type="java:java.lang.Integer">1</CUSTID>
<CUSTCODE __type="java:java.lang.String">cust_1</CUSTCODE>
<CUSTNAME/>
<BIRTH/>
<SEX/>
<ADDRESS/>
<PHOTO/>
</cust>
</__root>
</bizContext>
- 等效的SQL语句
delete from CUST where CUSTID=1 and CUSTCODE='cust_1'
- 调用后的bizContext 同调用前。
# deleteEntityBatch:删除多条记录
# 【功能说明】
用来删除多条记录,所有操作隶属于一个原子事务。
# 【版本说明】
从EOS 6.0开始提供。
# 【引用路径】
- 本运算逻辑构件对应JAVA方法路径: com.eos.foundation.database.DatabaseUtil.deleteEntityBatch,包含在com.eos.foundation.jar中。
- 运算逻辑定义在构件包com.eos.foundation中。
# 【使用说明】
- 参数说明
类型 | 名称 | 数据类型 | 参数描述 |
---|---|---|---|
参数 | dsName | String | 数据源名称 |
参数 | dataObjects | DataObject[] | SDO对象数组 |
抛出异常说明 删除出错时抛出com.eos.system.exception.EOSRuntimeException。
规则说明 无。
# 【参考案例】
示例:在CUST表中删除多条记录。
场景描述 用户维护CUST表,根据记录主键批量删除多条CUST记录,并保证删除操作在一个事务里完成。
参数设置
类型 | 名称 | 数据类型 | 值 | 值类别 | 传递方式 |
---|---|---|---|---|---|
参数 | dsName | String | default | 常量 | 传引用 |
参数 | dataObjects | DataObject[] | custes | 变量 | 传引用 |
参数描述
- 第一个参数为数据源名称,更多的说明参见基本操作类DatabaseUtil中的注意
- 第二个参数是操作的SDO对象数组custes
其他说明 无。
调用前的bizContext
<bizContext>
<__root __id="0" __type="java:java.util.HashMap">
<custes __id="1" __type="java:[Lcommonj.sdo.DataObject;">
<__entry __componentType="java:commonj.sdo.DataObject" __id="2" __index="0"
__type="sdo:com.primeton.eos.foundation.example.data.CUST">
<CUSTID __type="java:java.lang.Integer">2</CUSTID>
<CUSTCODE __type="java:java.lang.String">cust_2</CUSTCODE>
<CUSTNAME/>
<BIRTH/>
<SEX/>
<ADDRESS/>
<PHOTO/>
</__entry>
<__entry __id="3" __index="1" __type="sdo:com.primeton.eos.foundation.example.data.CUST">
<CUSTID __type="java:java.lang.Integer">3</CUSTID>
<CUSTCODE __type="java:java.lang.String">cust_3</CUSTCODE>
<CUSTNAME/>
<BIRTH/>
<SEX/>
<ADDRESS/>
<PHOTO/>
</__entry>
</custes>
</__root>
</bizContext>
- 等效的SQL语句
delete from CUST where CUSTID=2 and CUSTCODE='cust_2'
delete from CUST where CUSTID=3 and CUSTCODE='cust_3'
- 调用后的bizContext 同调用前。
# expandEntitiesRelation:扩展一个数据实体数组中每个实体对象的一个关联属性
# 【功能说明】
扩展一个数据实体数组中每个实体对象的一个关联属性(如对一个懒加载的属性),会进行数据库的查询。
# 【版本说明】
从EOS 6.0开始提供。
# 【引用路径】
- 本运算逻辑构件对应JAVA方法路径: com.eos.foundation.database.DatabaseUtil.expandEntitesRelation,包含在com.eos.foundation.jar中。
- 运算逻辑定义在构件包com.eos.foundation中。
# 【使用说明】
- 参数说明
类型 | 名称 | 数据类型 | 参数描述 |
---|---|---|---|
参数 | dsName | String | 数据源名称 |
参数 | dataObjects | DataObject[] | SDO对象 |
参数 | property | String | 属性名 |
抛出异常说明 如果属性名对应的不是一个关联属性,则抛出异常com.eos.system.exception.EOSRuntimeException。
规则说明 无。
# 【参考案例】
示例:对O_OPERATOR表的多条记录的O_OPERATORS关联属性进行扩展查询。
- 参数设置
类型 | 名称 | 数据类型 | 值 | 值类别 | 传递方式 |
---|---|---|---|---|---|
参数 | dsName | String | default | 常量 | 传引用 |
参数 | dataObjects | DataObject[] | expandOrgs | 变量 | 传引用 |
参数 | property | String | O_OPERATORS | 常量 | 传引用 |
参数描述
- 第一个参数为数据源,更多的说明参见基本操作类DatabaseUtil中的注意
- 第二个参数是一个扩展的查询实体数组
- 第三个参数是扩展实体中的一个属性
其他说明 无。
调用前的bizContext
<bizContext>
<__root __id="0" __type="java:java.util.HashMap">
<expandOrgs __id="1" __type="java:[Lcommonj.sdo.DataObject;">
<__entry __componentType="java:commonj.sdo.DataObject" __id="2" __index="0"
__type="sdo:com.primeton.eos.foundation.example.data.O_ORG">
<ORG_ID __type="java:java.lang.Long">1</ORG_ID>
<PARENT_ORG_ID/>
<ORG_NAME/>
<ORG_CODE/>
<ORG_ADDRESS/>
<ORG_SEQ/>
<O_OPERATORS __collection="list"/>
</__entry>
<__entry __id="3" __index="1" __type="sdo:com.primeton.eos.foundation.example.data.O_ORG">
<ORG_ID __type="java:java.lang.Long">2</ORG_ID>
<PARENT_ORG_ID/>
<ORG_NAME/>
<ORG_CODE/>
<ORG_ADDRESS/>
<ORG_SEQ/>
<O_OPERATORS __collection="list"/>
</__entry>
</expandOrgs>
</__root>
</bizContext>
- 等效的SQL语句
select ORG_ID, OPERATOR_ID, USER_ID, USER_NAME, BIRTHDAY, GENDER, POSTCODE, ADDRESS, PHONE, EMAIL, MEMO
from O_OPERATOR where ORG_ID=1
select ORG_ID, OPERATOR_ID, USER_ID, USER_NAME, BIRTHDAY, GENDER, POSTCODE, ADDRESS, PHONE, EMAIL, MEMO
from O_OPERATOR where ORG_ID=2
- 调用后的bizContext
<bizContext>
<__root __id="0" __type="java:java.util.HashMap">
<expandOrgs __id="1" __type="java:[Lcommonj.sdo.DataObject;">
<__entry __componentType="java:commonj.sdo.DataObject" __id="2" __index="0"
__type="sdo:com.primeton.eos.foundation.example.data.O_ORG">
<ORG_ID __type="java:java.lang.Long">1</ORG_ID>
<PARENT_ORG_ID/>
<ORG_NAME/>
<ORG_CODE/>
<ORG_ADDRESS/>
<ORG_SEQ/>
<O_OPERATORS __id="4" __type="java:com.primeton.ext.data.sdo.collection.ContainerAwareList">
<__entry __id="6" __index="0" __type="sdo:com.primeton.eos.foundation.example.data
.O_OPERATOR">
<OPERATOR_ID __type="java:java.lang.Long">1</OPERATOR_ID>
<USER_ID __isNullOrEmpty="null"/>
<USER_NAME __type="java:java.lang.String">opeartor_1</USER_NAME>
<BIRTHDAY __isNullOrEmpty="null"/>
<GENDER __isNullOrEmpty="null"/>
<POSTCODE __isNullOrEmpty="null"/>
<ADDRESS __isNullOrEmpty="null"/>
<PHONE __isNullOrEmpty="null"/>
<EMAIL __isNullOrEmpty="null"/>
<MEMO __isNullOrEmpty="null"/>
<ORG_ID __type="java:java.lang.Long">1</ORG_ID>
</__entry>
<__entry __id="7" __index="1" __type="sdo:com.primeton.eos.foundation.example.data
.O_OPERATOR">
<OPERATOR_ID __type="java:java.lang.Long">2</OPERATOR_ID>
<USER_ID __isNullOrEmpty="null"/>
<USER_NAME __type="java:java.lang.String">opeartor_2</USER_NAME>
<BIRTHDAY __isNullOrEmpty="null"/>
<GENDER __isNullOrEmpty="null"/>
<POSTCODE __isNullOrEmpty="null"/>
<ADDRESS __isNullOrEmpty="null"/>
<PHONE __isNullOrEmpty="null"/>
<EMAIL __isNullOrEmpty="null"/>
<MEMO __isNullOrEmpty="null"/>
<ORG_ID __type="java:java.lang.Long">1</ORG_ID>
</__entry>
</O_OPERATORS>
</__entry>
<__entry __id="3" __index="1" __type="sdo:com.primeton.eos.foundation.example.data.O_ORG">
<ORG_ID __type="java:java.lang.Long">2</ORG_ID>
<PARENT_ORG_ID/>
<ORG_NAME/>
<ORG_CODE/>
<ORG_ADDRESS/>
<ORG_SEQ/>
<O_OPERATORS __id="5" __type="java:com.primeton.ext.data.sdo.collection.ContainerAwareList">
<__entry __id="8" __index="0" __type="sdo:com.primeton.eos.foundation.example.data
.O_OPERATOR">
<OPERATOR_ID __type="java:java.lang.Long">3</OPERATOR_ID>
<USER_ID __isNullOrEmpty="null"/>
<USER_NAME __type="java:java.lang.String">opeartor_3</USER_NAME>
<BIRTHDAY __isNullOrEmpty="null"/>
<GENDER __isNullOrEmpty="null"/>
<POSTCODE __isNullOrEmpty="null"/>
<ADDRESS __isNullOrEmpty="null"/>
<PHONE __isNullOrEmpty="null"/>
<EMAIL __isNullOrEmpty="null"/>
<MEMO __isNullOrEmpty="null"/>
<ORG_ID __type="java:java.lang.Long">2</ORG_ID>
</__entry>
</O_OPERATORS>
</__entry>
</expandOrgs>
</__root>
</bizContext>
# expandEntity:根据主键扩展查询一条记录
# 【功能说明】
根据主键扩展查询一条记录,如果dataobject中有非主键的属性值,将根据主键查询出来覆盖原来的属性。
# 【版本说明】
从EOS 6.0开始提供。
# 【引用路径】
- 本运算逻辑构件对应JAVA方法路径: com.eos.foundation.database.DatabaseUtil.expandEntity,包含在com.eos.foundation.jar中。
- 运算逻辑定义在构件包com.eos.foundation中。
# 【使用说明】
- 参数说明
类型 | 名称 | 数据类型 | 参数描述 |
---|---|---|---|
参数 | dsName | String | 数据源名称 |
参数 | dataObject | DataObject | SDO对象 |
返回值 | out0 | int | 0:无记录;1:有记录 |
抛出异常说明 查询出错时抛出com.eos.system.exception.EOSRuntimeException。
规则说明 如果要查询的entity中的主键没有赋值,在单主键下抛异常,多主键下返回空结果。
# 【参考案例】
示例:根据主键对CUST表进行扩展查询。
场景描述 用户根据查询条件实体进行查询CUST表,查询操作根据主键进行查询,查询出的结果覆盖其他非主键属性。
参数设置
类型 | 名称 | 数据类型 | 值 | 值类别 | 传递方式 |
---|---|---|---|---|---|
参数 | dsName | String | default | 常量 | 传引用 |
参数 | dataObject | DataObject | expandCust | 变量 | 传引用 |
返回值 | out0 | int | result | 变量 | 传引用 |
参数描述
- 第一个参数为数据源,更多的说明参见基本操作类DatabaseUtil中的注意
- 第二个参数是查询数据实体
- 返回值是否查到记录
其他说明 无。
调用前的bizContext
<bizContext>
<__root __id="0" __type="java:java.util.HashMap">
<expandCust __id="1" __type="sdo:com.primeton.eos.foundation.example.data.CUST">
<CUSTID __type="java:java.lang.Integer">1</CUSTID>
<CUSTCODE __type="java:java.lang.String">cust_1</CUSTCODE>
<CUSTNAME/>
<BIRTH/>
<SEX/>
<ADDRESS/>
<PHOTO/>
</expandCust>
</__root>
</bizContext>
- 等效的SQL语句
select CUSTID, CUSTCODE, CUSTNAME, BIRTH, SEX, ADDRESS from CUST where CUSTID=1 and CUSTCODE='cust_1';
- 调用后的bizContext
<bizContext>
<__root __id="0" __type="java:java.util.HashMap">
<expandCust __id="1" __type="sdo:com.primeton.eos.foundation.example.data.CUST">
<CUSTID __type="java:java.lang.Integer">1</CUSTID>
<CUSTCODE __type="java:java.lang.String">cust_1</CUSTCODE>
<CUSTNAME __type="java:java.lang.String">cust_1</CUSTNAME>
<BIRTH __type="java:java.sql.Date">2009-09-12</BIRTH>
<SEX __type="java:java.lang.String">1</SEX>
<ADDRESS __isNullOrEmpty="null"/>
<PHOTO __isNullOrEmpty="null"/>
</expandCust>
<result __type="java:java.lang.Integer">1</result>
</__root>
</bizContext>
# expandEntityByCriteriaEntity:根据查询条件实体的查询结果扩展一个实体
# 【功能说明】
如果查询出来有一条记录,返回1,并使用查询出来的结果扩展要扩展的实体; 如果没有查询出来记录,返回0,不操作要扩展的实体; 如果查询出来多条记录,返回-1,并使用查询出来的第一个结果扩展要扩展的实体。
# 【版本说明】
从EOS 6.0开始提供。
# 【引用路径】
- 本运算逻辑构件对应JAVA方法路径: com.eos.foundation.database.DatabaseUtil.expandEntityByCriteriaEntity,包含在com.eos.foundation.jar中。
- 运算逻辑定义在构件包com.eos.foundation中。
# 【使用说明】
- 参数说明
类型 | 名称 | 数据类型 | 参数描述 |
---|---|---|---|
参数 | dsName | String | 数据源名称 |
参数 | criteriaEntity | DataObject | 查询条件实体 |
参数 | dataObject | DataObject | 要扩展的实体 |
返回值 | out0 | int | 满足查询条件的记录数 |
抛出异常说明 插入出错时抛出com.eos.system.exception.EOSRuntimeException。
规则说明 无。
# 【参考案例】
示例:根据条件扩展一个CUST实体。
场景描述 根据条件扩展一个CUST实体。
参数设置
类型 | 名称 | 数据类型 | 值 | 值类别 | 传递方式 |
---|---|---|---|---|---|
参数 | dsName | String | default | 常量 | 传引用 |
参数 | criteriaEntity | DataObject | criteria | 变量 | 传引用 |
参数 | dataObject | DataObject | entity | 变量 | 传引用 |
返回值 | out0 | int | count | 变量 | 传引用 |
参数描述
- 第一个参数为数据源,更多的说明参见基本操作类DatabaseUtil中的注意
- 第二个参数是第二个参数是查询实体criteria
- 第三个参数是要扩展的实体
- 第四个参数是满足查询模板条件的记录数
其他说明 无。
调用前的bizContext
<bizContext>
<__root __id="0" __type="java:java.util.HashMap">
<criteria __id="1" __type="sdo:com.primeton.das.criteria.criteriaType">
<_entity
__type="java:java.lang.String">com.primeton.eos.foundation.example.data.CUST</_entity>
<_select/>
<_and __collection="list"/>
<_or __collection="list"/>
<_not __collection="list"/>
<_order __collection="list"/>
<_orderby __collection="list"/>
<_group/>
<_distinct/>
<_association __collection="list"/>
<_ref __collection="list"/>
<_lock/>
<_expr __collection="list" __collectionid="3" __id="4" __index="0"
__type="sdo:com.primeton.das.criteria.exprType">
<_op/>
<_min/>
<_max/>
<_likeRule/>
<_dateRule/>
<_pattern/>
<_year/>
<_quarter/>
<_month/>
<_opProperty/>
<_ref/>
<_processNullValue/>
<_property/>
<_value/>
<CUSTID __type="java:java.lang.Integer">2</CUSTID>
</_expr>
</criteria>
<entity __id="2" __type="sdo:com.primeton.eos.foundation.example.data.CUST">
<CUSTID/>
<CUSTCODE/>
<CUSTNAME/>
<BIRTH/>
<SEX/>
<ADDRESS/>
<PHOTO/>
</entity>
</__root>
</bizContext>
- 等效的SQL语句
select * from CUST where CUSTID = 2
- 调用后的bizContext
<bizContext>
<__root __id="0" __type="java:java.util.HashMap">
<count __type="java:java.lang.Integer">1</count>
<criteria __id="1" __type="sdo:com.primeton.das.criteria.criteriaType">
<_entity
__type="java:java.lang.String">com.primeton.eos.foundation.example.data.CUST</_entity>
<_select/>
<_and __collection="list"/>
<_or __collection="list"/>
<_not __collection="list"/>
<_order __collection="list"/>
<_orderby __collection="list"/>
<_group/>
<_distinct/>
<_association __collection="list"/>
<_ref __collection="list"/>
<_lock/>
<_expr __collection="list" __collectionid="3" __id="4" __index="0"
__type="sdo:com.primeton.das.criteria.exprType">
<_op/>
<_min/>
<_max/>
<_likeRule/>
<_dateRule/>
<_pattern/>
<_year/>
<_quarter/>
<_month/>
<_opProperty/>
<_ref/>
<_processNullValue/>
<_property/>
<_value/>
<CUSTID __type="java:java.lang.Integer">2</CUSTID>
</_expr>
</criteria>
<entity __id="2" __type="sdo:com.primeton.eos.foundation.example.data.CUST">
<CUSTID __type="java:java.lang.Integer">2</CUSTID>
<CUSTCODE __type="java:java.lang.String">cust_2</CUSTCODE>
<CUSTNAME __type="java:java.lang.String">cust_2</CUSTNAME>
<BIRTH __type="java:java.sql.Date">2009-09-09</BIRTH>
<SEX __isNullOrEmpty="null"/>
<ADDRESS __isNullOrEmpty="null"/>
<PHOTO __isNullOrEmpty="null"/>
</entity>
</__root>
</bizContext>
# expandEntityByTemplate:根据查询模板的查询结果扩展一个实体
# 【功能说明】
如果查询出来有一条记录,返回1,并使用查询出来的结果扩展要扩展的实体; 如果没有查询出来记录,返回0,不操作要扩展的实体; 如果查询出来多条记录,返回-1,并使用查询出来的第一个结果扩展要扩展的实体。
# 【版本说明】
从EOS 6.0开始提供。
# 【引用路径】
- 本运算逻辑构件对应JAVA方法路径: com.eos.foundation.database.DatabaseUtil.expandEntityByTemplate,包含在com.eos.foundation.jar中。
- 运算逻辑定义在构件包com.eos.foundation中。
# 【使用说明】
- 参数说明
类型 | 名称 | 数据类型 | 参数描述 |
---|---|---|---|
参数 | dsName | String | 数据源名称 |
参数 | template | DataObject | 查询模板 |
参数 | dataObject | DataObject | 要扩展的实体 |
返回值 | out0 | int | 满足查询模板条件的记录数 |
抛出异常说明 插入出错时抛出com.eos.system.exception.EOSRuntimeException。
规则说明 无。
# 【参考案例】
示例:根据条件扩展一个CUST实体。
场景描述 根据条件扩展一个CUST实体。
参数设置
类型 | 名称 | 数据类型 | 值 | 值类别 | 传递方式 |
---|---|---|---|---|---|
参数 | dsName | String | default | 常量 | 传引用 |
参数 | template | DataObject | template | 变量 | 传引用 |
参数 | dataObject | DataObject | entity | 变量 | 传引用 |
返回值 | out0 | int | count | 变量 | 传引用 |
参数描述
- 第一个参数为数据源,更多的说明参见基本操作类DatabaseUtil中的注意
- 第二个参数是操作的SDO数据模板,这里作为查询条件的数据模板
- 第三个参数是要扩展的实体
- 第四个参数是满足查询模板条件的记录数
其他说明 无。
调用前的bizContext
<bizContext>
<__root __id="0" __type="java:java.util.HashMap">
<entity __id="1" __type="sdo:com.primeton.eos.foundation.example.data.CUST">
<CUSTID/>
<CUSTCODE/>
<CUSTNAME/>
<BIRTH/>
<SEX/>
<ADDRESS/>
<PHOTO/>
</entity>
<template __id="2" __type="sdo:com.primeton.eos.foundation.example.data.CUST">
<CUSTID __type="java:java.lang.Integer">2</CUSTID>
<CUSTCODE/>
<CUSTNAME/>
<BIRTH/>
<SEX/>
<ADDRESS/>
<PHOTO/>
</template>
</__root>
</bizContext>
- 等效的SQL语句
select * from CUST where CUSTID = 2
- 调用后的bizContext
<bizContext>
<__root __id="0" __type="java:java.util.HashMap">
<count __type="java:java.lang.Integer">1</count>
<entity __id="1" __type="sdo:com.primeton.eos.foundation.example.data.CUST">
<CUSTID __type="java:java.lang.Integer">2</CUSTID>
<CUSTCODE __type="java:java.lang.String">cust_2</CUSTCODE>
<CUSTNAME __type="java:java.lang.String">cust_2</CUSTNAME>
<BIRTH __type="java:java.sql.Date">2009-09-09</BIRTH>
<SEX __isNullOrEmpty="null"/>
<ADDRESS __isNullOrEmpty="null"/>
<PHOTO __isNullOrEmpty="null"/>
</entity>
<template __id="2" __type="sdo:com.primeton.eos.foundation.example.data.CUST">
<CUSTID __type="java:java.lang.Integer">2</CUSTID>
<CUSTCODE/>
<CUSTNAME/>
<BIRTH/>
<SEX/>
<ADDRESS/>
<PHOTO/>
</template>
</__root>
</bizContext>
# expandEntityWithLock:根据主键扩展记录并锁定
# 【功能说明】
根据主键扩展记录,并为当前记录添加事务锁。如果dataobject中有非主键的属性值,将根据主键查询出来覆盖原来的属性。
# 【版本说明】
从EOS 6.0开始提供。
# 【引用路径】
- 本运算逻辑构件对应JAVA方法路径: com.eos.foundation.database.DatabaseUtil.expandEntityWithLock,包含在com.eos.foundation.jar中。
- 运算逻辑定义在构件包com.eos.foundation中。
# 【使用说明】
- 参数说明
类型 | 名称 | 数据类型 | 参数描述 |
---|---|---|---|
参数 | dsName | String | 数据源名称 |
参数 | dataObject | DataObject | SDO对象 |
抛出异常说明 查询出错时抛出com.eos.system.exception.EOSRuntimeException。
规则说明 无。
# 【参考案例】
示例:扩展查询CUST表并添加行锁。
场景描述 用户维护CUST表,根据主键CUSTID查询一个记录并为该记录添加事务锁。
参数设置
类型 | 名称 | 数据类型 | 值 | 值类别 | 传递方式 |
---|---|---|---|---|---|
参数 | dsName | String | default | 常量 | 传引用 |
参数 | dataObject | DataObject | expandCust | 变量 | 传引用 |
参数描述
- 第一个参数为数据源,更多的说明参见基本操作类DatabaseUtil中的注意
- 第二个参数是查询实体对象,查询条件中必须包含主键属性
其他说明 无。
调用前的bizContext
<bizContext>
<__root __id="0" __type="java:java.util.HashMap">
<expandCust __id="1" __type="sdo:com.primeton.eos.foundation.example.data.CUST">
<CUSTID __type="java:java.lang.Integer">1</CUSTID>
<CUSTCODE __type="java:java.lang.String">cust_1</CUSTCODE>
<CUSTNAME/>
<BIRTH/>
<SEX/>
<ADDRESS/>
<PHOTO/>
</expandCust>
</__root>
</bizContext>
- 等效的SQL语句
select CUSTID, CUSTCODE, CUSTNAME, BIRTH, SEX, ADDRESS from CUST where CUSTID=1 and CUSTCODE='cust_1'
for update;
- 调用后的bizContext
<bizContext>
<__root __id="0" __type="java:java.util.HashMap">
<expandCust __id="1" __type="sdo:com.primeton.eos.foundation.example.data.CUST">
<CUSTID __type="java:java.lang.Integer">1</CUSTID>
<CUSTCODE __type="java:java.lang.String">cust_1</CUSTCODE>
<CUSTNAME __type="java:java.lang.String">cust_1</CUSTNAME>
<BIRTH __type="java:java.sql.Date">2009-09-12</BIRTH>
<SEX __type="java:java.lang.String">1</SEX>
<ADDRESS __isNullOrEmpty="null"/>
<PHOTO __isNullOrEmpty="null"/>
</expandCust>
</__root>
</bizContext>
# expandLobProperty:获取实体的lob属性对应的值
# 【功能说明】
从数据库中查询取得的实体,如果有lob字段,而且是懒加载模式,则lob字段的值是不可见的,调用此方法,可以获取实体的lob属性对应的值。
# 【版本说明】
从EOS 6.0开始提供。
# 【引用路径】
- 本运算逻辑构件对应JAVA方法路径: com.eos.foundation.database.DatabaseUtil.expandLobProperty,包含在com.eos.foundation.jar中。
- 运算逻辑定义在构件包com.eos.foundation中。
# 【使用说明】
- 参数说明
类型 | 名称 | 数据类型 | 参数描述 |
---|---|---|---|
参数 | dsName | String | 数据源名称 |
参数 | entity | DataObject | 实体 |
参数 | lobPropertyNames | String | lob属性的名称,多个名称之间用","分割。 |
- 规则说明 无。
# 【参考案例】
示例:取得FIFE表的FILE(BLOB类型)属性值。
- 参数设置
类型 | 名称 | 数据类型 | 值 | 值类别 | 传递方式 |
---|---|---|---|---|---|
参数 | dsName | String | default | 常量 | 传引用 |
参数 | entity | DataObject | fileList[1] | 变量 | 传引用 |
参数 | lobPropertyNames | String | FILE | 常量 | 传引用 |
参数描述
- 第一个参数为数据源,更多的说明参见基本操作类DatabaseUtil中的注意
- 第二个参数是取得一个数据实体
- 第三个参数是lob属性的名称
其他说明 无。
调用前的bizContext
<bizContext>
<__root __id="0" __type="java:java.util.HashMap">
<file __id="1" __type="sdo:foundation.database.DatabaseUtil.lob.FILE">
<ID/>
<NAME/>
<FILE/>
</file>
<fileList __id="2" __type="java:[Lcommonj.sdo.DataObject;">
<__entry __componentType="java:commonj.sdo.DataObject" __id="3" __index="0" __type="sdo:foundation
.database.DatabaseUtil.lob.FILE">
<ID __type="java:java.math.BigDecimal">123</ID>
<NAME __type="java:java.lang.String">公司</NAME>
<FILE/>
</__entry>
</fileList>
</__root>
</bizContext>
- 调用后的bizContext
<bizContext>
<__root __id="0" __type="java:java.util.HashMap">
<file __id="1" __type="sdo:foundation.database.DatabaseUtil.lob.FILE">
<ID/>
<NAME/>
<FILE/>
</file>
<fileList __id="2" __type="java:[Lcommonj.sdo.DataObject;">
<__entry __componentType="java:commonj.sdo.DataObject" __id="3" __index="0" __type="sdo:foundation
.database.DatabaseUtil.lob.FILE">
<ID __type="java:java.math.BigDecimal">123</ID>
<NAME __type="java:java.lang.String">公司</NAME>
<FILE __collection="array" __hexString="true" __id="4" __type="java:byte">C4E3BAC3A3A1</FILE>
</__entry>
</fileList>
</__root>
</bizContext>
# expandRelation:扩展一个数据实体对象的一个关联属性
# 【功能说明】
扩展一个数据实体对象的一个关联属性(如对一个懒加载的属性),会进行数据库的查询。
# 【版本说明】
从EOS 6.0开始提供。
# 【引用路径】
- 本运算逻辑构件对应JAVA方法路径: com.eos.foundation.database.DatabaseUtil.expandRelation,包含在com.eos.foundation.jar中。
- 运算逻辑定义在构件包com.eos.foundation中。
# 【使用说明】
- 参数说明
类型 | 名称 | 数据类型 | 参数描述 |
---|---|---|---|
参数 | dsName | String | 数据源名称 |
参数 | dataObject | DataObject | SDO对象 |
参数 | property | String | 关联属性名 |
抛出异常说明 如果属性名对应的不是一个关联属性,则抛出异常com.eos.system.exception.EOSRuntimeException。
规则说明 无。
# 【参考案例】
示例:由于实际业务中有可能根据性能要求,考虑把某个实体的复杂属性进行延时加载。此时就可以使用expandRelation进行二次扩展查询。数据实体之间是单向1:n关联关系。实体关系如下图所示。
- 参数设置
类型 | 名称 | 数据类型 | 值 | 值类别 | 传递方式 |
---|---|---|---|---|---|
参数 | dsName | String | default | 常量 | 传引用 |
参数 | dataObject | DataObject | expandOrg | 变量 | 传引用 |
参数 | property | String | O_OPERATORS | 常量 | 传引用 |
参数描述
- 第一个参数为数据源,更多的说明参见基本操作类DatabaseUtil中的注意
- 第二个参数是查询实体对象
- 第三个参数是查询数据实体扩展的一个属性实体对象
其他说明 无。
调用前的bizContext
<bizContext>
<__root __id="0" __type="java:java.util.HashMap">
<expandOrg __id="1" __type="sdo:com.primeton.eos.foundation.example.data.O_ORG">
<ORG_ID __type="java:java.lang.Long">1</ORG_ID>
<PARENT_ORG_ID/>
<ORG_NAME/>
<ORG_CODE/>
<ORG_ADDRESS/>
<ORG_SEQ/>
<O_OPERATORS __collection="list"/>
</expandOrg>
</__root>
</bizContext>
- 等效的SQL语句
select ORG_ID, OPERATOR_ID, USER_ID, USER_NAME, BIRTHDAY, GENDER, POSTCODE, ADDRESS, PHONE, EMAIL, MEMO
from O_OPERATOR where ORG_ID=1
- 调用后的bizContext
<bizContext>
<__root __id="0" __type="java:java.util.HashMap">
<expandOrg __id="1" __type="sdo:com.primeton.eos.foundation.example.data.O_ORG">
<ORG_ID __type="java:java.lang.Long">1</ORG_ID>
<PARENT_ORG_ID/>
<ORG_NAME/>
<ORG_CODE/>
<ORG_ADDRESS/>
<ORG_SEQ/>
<O_OPERATORS __id="2" __type="java:com.primeton.ext.data.sdo.collection.ContainerAwareList">
<__entry __id="3" __index="0" __type="sdo:com.primeton.eos.foundation.example.data.O_OPERATOR">
<OPERATOR_ID __type="java:java.lang.Long">1</OPERATOR_ID>
<USER_ID __isNullOrEmpty="null"/>
<USER_NAME __type="java:java.lang.String">opeartor_1</USER_NAME>
<BIRTHDAY __isNullOrEmpty="null"/>
<GENDER __isNullOrEmpty="null"/>
<POSTCODE __isNullOrEmpty="null"/>
<ADDRESS __isNullOrEmpty="null"/>
<PHONE __isNullOrEmpty="null"/>
<EMAIL __isNullOrEmpty="null"/>
<MEMO __isNullOrEmpty="null"/>
<ORG_ID __type="java:java.lang.Long">1</ORG_ID>
</__entry>
<__entry __id="4" __index="1" __type="sdo:com.primeton.eos.foundation.example.data.O_OPERATOR">
<OPERATOR_ID __type="java:java.lang.Long">2</OPERATOR_ID>
<USER_ID __isNullOrEmpty="null"/>
<USER_NAME __type="java:java.lang.String">opeartor_2</USER_NAME>
<BIRTHDAY __isNullOrEmpty="null"/>
<GENDER __isNullOrEmpty="null"/>
<POSTCODE __isNullOrEmpty="null"/>
<ADDRESS __isNullOrEmpty="null"/>
<PHONE __isNullOrEmpty="null"/>
<EMAIL __isNullOrEmpty="null"/>
<MEMO __isNullOrEmpty="null"/>
<ORG_ID __type="java:java.lang.Long">1</ORG_ID>
</__entry>
</O_OPERATORS>
</expandOrg>
</__root>
</bizContext>
# getRelationEntities:根据数据实体对象的关联属性获得关联实体对象数组
# 【功能说明】
根据数据实体对象的关联属性获得关联实体对象数组,返回关联实体对象如果是多对一或一对一关联关系时,将关联的实体对象构造为数组返回;如果是一对多关联关系时,返回关联的实体对象数组。
# 【版本说明】
从EOS 6.0开始提供。
# 【引用路径】
- 本运算逻辑构件对应JAVA方法路径: com.eos.foundation.database.DatabaseUtil.getRelationEntities,包含在com.eos.foundation.jar中。
- 运算逻辑定义在构件包com.eos.foundation中。
# 【使用说明】
- 参数说明
类型 | 名称 | 数据类型 | 参数描述 |
---|---|---|---|
参数 | dsName | String | 数据源名称 |
参数 | dataObject | DataObject | SDO对象 |
参数 | property | String | 属性名 |
返回值 | out0 | DataObject[] | 关联实体对象数组 |
抛出异常说明 如果属性名对应的不是一个关联属性,则抛出异常com.eos.system.exception.EOSRuntimeException。
规则说明 无。
# 【参考案例】
示例:根据组织信息查询属于该组织的所有操作员信息。实体关系图如下:
- 参数设置
类型 | 名称 | 数据类型 | 值 | 值类别 | 传递方式 |
---|---|---|---|---|---|
参数 | dsName | String | default | 常量 | 传引用 |
参数 | dataObject | DataObject | org | 变量 | 传引用 |
参数 | property | String | O_OPERATORS | 变量 | 传引用 |
返回值 | out0 | DataObject[] | result | 变量 | 传引用 |
参数描述
- 第一个参数为数据源,更多的说明参见基本操作类DatabaseUtil中的注意
- 第二个参数是查询实体对象
- 第三个参数是扩展实体中的一个属性名称
- 返回值是查询实体关联查询结果实体对象数组
其他说明 无。
调用前的bizContext
<bizContext>
<__root __id="0" __type="java:java.util.HashMap">
<org __id="1" __type="sdo:com.primeton.eos.foundation.example.data.O_ORG">
<ORG_ID __type="java:java.lang.Long">1</ORG_ID>
<PARENT_ORG_ID/>
<ORG_NAME/>
<ORG_CODE/>
<ORG_ADDRESS/>
<ORG_SEQ/>
<O_OPERATORS __collection="list"/>
</org>
</__root>
</bizContext>
- 等效的SQL语句
select ORG_ID, OPERATOR_ID, USER_ID, USER_NAME, BIRTHDAY, GENDER, POSTCODE, ADDRESS, PHONE, EMAIL, MEMO
from O_OPERATOR where ORG_ID=1
- 调用后的bizContext
<bizContext>
<__root __id="0" __type="java:java.util.HashMap">
<org __id="1" __type="sdo:com.primeton.eos.foundation.example.data.O_ORG">
<ORG_ID __type="java:java.lang.Long">1</ORG_ID>
<PARENT_ORG_ID/>
<ORG_NAME/>
<ORG_CODE/>
<ORG_ADDRESS/>
<ORG_SEQ/>
<O_OPERATORS __id="3" __type="java:com.primeton.ext.data.sdo.collection.ContainerAwareList">
<__entry __index="0" __refid="4"/>
<__entry __index="1" __refid="5"/>
</O_OPERATORS>
</org>
<result __id="2" __type="java:[Lcommonj.sdo.DataObject;">
<__entry __componentType="java:commonj.sdo.DataObject" __id="4" __index="0"
__type="sdo:com.primeton.eos.foundation.example.data.O_OPERATOR">
<OPERATOR_ID __type="java:java.lang.Long">1</OPERATOR_ID>
<USER_ID __isNullOrEmpty="null"/>
<USER_NAME __type="java:java.lang.String">opeartor_1</USER_NAME>
<BIRTHDAY __isNullOrEmpty="null"/>
<GENDER __isNullOrEmpty="null"/>
<POSTCODE __isNullOrEmpty="null"/>
<ADDRESS __isNullOrEmpty="null"/>
<PHONE __isNullOrEmpty="null"/>
<EMAIL __isNullOrEmpty="null"/>
<MEMO __isNullOrEmpty="null"/>
<ORG_ID __type="java:java.lang.Long">1</ORG_ID>
</__entry>
<__entry __id="5" __index="1" __type="sdo:com.primeton.eos.foundation.example.data.O_OPERATOR">
<OPERATOR_ID __type="java:java.lang.Long">2</OPERATOR_ID>
<USER_ID __isNullOrEmpty="null"/>
<USER_NAME __type="java:java.lang.String">opeartor_2</USER_NAME>
<BIRTHDAY __isNullOrEmpty="null"/>
<GENDER __isNullOrEmpty="null"/>
<POSTCODE __isNullOrEmpty="null"/>
<ADDRESS __isNullOrEmpty="null"/>
<PHONE __isNullOrEmpty="null"/>
<EMAIL __isNullOrEmpty="null"/>
<MEMO __isNullOrEmpty="null"/>
<ORG_ID __type="java:java.lang.Long">1</ORG_ID>
</__entry>
</result>
</__root>
</bizContext>
# getRelationEntity:根据数据实体对象的关联属性获得关联实体对象
# 【功能说明】
根据数据实体对象的关联属性获得关联实体对象,返回关联实体对象如果是多对一或一对一关联关系时,返回关联的实体对象;如果是一对多关联关系时,返回关联的实体对象的第一个对象值。
# 【版本说明】
从EOS 6.0开始提供。
# 【引用路径】
- 本运算逻辑构件对应JAVA方法路径: com.eos.foundation.database.DatabaseUtil.getRelationEntity,包含在com.eos.foundation.jar中。
- 运算逻辑定义在构件包com.eos.foundation中。
# 【使用说明】
- 参数说明
类型 | 名称 | 数据类型 | 参数描述 |
---|---|---|---|
参数 | dsName | String | 数据源名称 |
参数 | dataObject | DataObject | SDO对象 |
参数 | property | String | 关联属性名 |
返回值 | out0 | DataObject | 关联实体对象 |
抛出异常说明 如果属性名对应的不是一个关联属性,则抛出异常com.eos.system.exception.EOSRuntimeException。
规则说明 无。
# 【参考案例】
示例:本案例用来根据某一ORG信息获取对应的第一个OPERATOR的信息。
- 参数设置
类型 | 名称 | 数据类型 | 值 | 值类别 | 传递方式 |
---|---|---|---|---|---|
参数 | dsName | String | default | 常量 | 传引用 |
参数 | dataObject | DataObject | org | 变量 | 传引用 |
参数 | property | String | O_OPERATORS | 变量 | 传引用 |
返回值 | out0 | DataObject | result | 变量 | 传引用 |
参数描述
- 第一个参数为数据源,更多的说明参见基本操作类DatabaseUtil中的注意
- 第二个参数是一个扩展的查询实体
- 第三个参数是扩展实体中的一个属性
- 返回值是查询实体关联查询结果实体
其他说明 无。
调用前的bizContext
<bizContext>
<__root __id="0" __type="java:java.util.HashMap">
<org __id="1" __type="sdo:com.primeton.eos.foundation.example.data.O_ORG">
<ORG_ID __type="java:java.lang.Long">1</ORG_ID>
<PARENT_ORG_ID/>
<ORG_NAME/>
<ORG_CODE/>
<ORG_ADDRESS/>
<ORG_SEQ/>
<O_OPERATORS __collection="list"/>
</org>
</__root>
</bizContext>
- 等效的SQL语句
select ORG_ID, OPERATOR_ID, USER_ID, USER_NAME, BIRTHDAY, GENDER, POSTCODE, ADDRESS, PHONE, EMAIL, MEMO
from O_OPERATOR where ORG_ID=1
- 调用后的bizContext
<bizContext>
<__root __id="0" __type="java:java.util.HashMap">
<org __id="1" __type="sdo:com.primeton.eos.foundation.example.data.O_ORG">
<ORG_ID __type="java:java.lang.Long">1</ORG_ID>
<PARENT_ORG_ID/>
<ORG_NAME/>
<ORG_CODE/>
<ORG_ADDRESS/>
<ORG_SEQ/>
<O_OPERATORS __id="3" __type="java:com.primeton.ext.data.sdo.collection.ContainerAwareList">
<__entry __index="0" __refid="2"/>
<__entry __id="4" __index="1" __type="sdo:com.primeton.eos.foundation.example.data.O_OPERATOR">
<OPERATOR_ID __type="java:java.lang.Long">2</OPERATOR_ID>
<USER_ID __isNullOrEmpty="null"/>
<USER_NAME __type="java:java.lang.String">opeartor_2</USER_NAME>
<BIRTHDAY __isNullOrEmpty="null"/>
<GENDER __isNullOrEmpty="null"/>
<POSTCODE __isNullOrEmpty="null"/>
<ADDRESS __isNullOrEmpty="null"/>
<PHONE __isNullOrEmpty="null"/>
<EMAIL __isNullOrEmpty="null"/>
<MEMO __isNullOrEmpty="null"/>
<ORG_ID __type="java:java.lang.Long">1</ORG_ID>
</__entry>
</O_OPERATORS>
</org>
<result __id="2" __type="sdo:com.primeton.eos.foundation.example.data.O_OPERATOR">
<OPERATOR_ID __type="java:java.lang.Long">1</OPERATOR_ID>
<USER_ID __isNullOrEmpty="null"/>
<USER_NAME __type="java:java.lang.String">opeartor_1</USER_NAME>
<BIRTHDAY __isNullOrEmpty="null"/>
<GENDER __isNullOrEmpty="null"/>
<POSTCODE __isNullOrEmpty="null"/>
<ADDRESS __isNullOrEmpty="null"/>
<PHONE __isNullOrEmpty="null"/>
<EMAIL __isNullOrEmpty="null"/>
<MEMO __isNullOrEmpty="null"/>
<ORG_ID __type="java:java.lang.Long">1</ORG_ID>
</result>
</__root>
</bizContext>
# insertEntity:插入一条记录
# 【功能说明】
用来把一个SDO对象的值保存到数据库相应的实体表中。
# 【版本说明】
从EOS 6.0开始提供。
# 【引用路径】
- 本运算逻辑构件对应JAVA方法路径: com.eos.foundation.database.DatabaseUtil.insertEntity,包含在com.eos.foundation.jar中。
- 运算逻辑定义在构件包com.eos.foundation中。
# 【使用说明】
- 参数说明
类型 | 名称 | 数据类型 | 参数描述 |
---|---|---|---|
参数 | dsName | String | 数据源名称 |
参数 | dataObject | DataObject | SDO对象 |
抛出异常说明 插入出错时抛出com.eos.system.exception.EOSRuntimeException。
规则说明 无。
# 【参考案例】
示例:在CUST表中新增一条记录。
场景描述 用户新增一条CUST记录。
参数设置
类型 | 名称 | 数据类型 | 值 | 值类别 | 传递方式 |
---|---|---|---|---|---|
参数 | dsName | String | default | 常量 | 传引用 |
参数 | dataObject | DataObject | cust | 变量 | 传引用 |
参数描述
- 第一个参数为数据源,更多的说明参见基本操作类DatabaseUtil中的注意
- 第二个参数是操作的SDO对象数据实体cust
其他说明
无。
调用前的bizContext
<bizContext>
<__root __id="0" __type="java:java.util.HashMap">
<cust __id="1" __type="sdo:com.primeton.eos.foundation.example.data.CUST">
<CUSTID __type="java:java.lang.Integer">1</CUSTID>
<CUSTCODE __type="java:java.lang.String">cust_1</CUSTCODE>
<CUSTNAME __type="java:java.lang.String">cust_1</CUSTNAME>
<BIRTH __type="java:java.util.Date">2009-09-12 00:00:00</BIRTH>
<SEX __type="java:java.lang.String">1</SEX>
<ADDRESS/>
<PHOTO/>
</cust>
</__root>
</bizContext>
- 等效的SQL语句
insert into CUST (CUSTNAME, BIRTH, SEX, CUSTID, CUSTCODE) values ('cust_1', to_date('2009-09-12','yyyy-MM-dd'),
'1', 1, 'cust_1')
调用后的bizContext 同调用前。
# insertEntityBatch:插入多条记录
# 【功能说明】
用来把一个SDO对象数组的值保存到数据库相应的实体表中,所有操作隶属于一个原子事务。
# 【版本说明】
从EOS 6.0开始提供。
# 【引用路径】
- 本运算逻辑构件对应JAVA方法路径: com.eos.foundation.database.DatabaseUtil.insertEntityBatch,包含在com.eos.foundation.jar中。
- 运算逻辑定义在构件包com.eos.foundation中。
# 【使用说明】
- 参数说明
类型 | 名称 | 数据类型 | 参数描述 |
---|---|---|---|
参数 | dsName | String | 数据源名称 |
参数 | dataObjects | DataObject[] | SDO数组 |
抛出异常说明 插入出错时抛出com.eos.system.exception.EOSRuntimeException。
规则说明 无。
# 【参考案例】
示例:在CUST表中新增多条记录。
场景描述 用户使用Datacell维护CUST表的内容。用户操作新增多条CUST数据。该场景下可以用insertEntityBatch实现多条记录的插入。
参数设置
类型 | 名称 | 数据类型 | 值 | 值类别 | 传递方式 |
---|---|---|---|---|---|
参数 | dsName | String | default | 常量 | 传引用 |
参数 | dataObjects | DataObject[] | custes | 变量 | 传引用 |
参数描述
- 第一个参数为数据源名称,更多的说明参见基本操作类DatabaseUtil中的注意
- 第二个参数是操作的SDO对象数组custes
其他说明 无。
调用前的bizContext
<bizContext>
<__root __id="0" __type="java:java.util.HashMap">
<custes __id="1" __type="java:[Lcommonj.sdo.DataObject;">
<__entry __componentType="java:commonj.sdo.DataObject" __id="2" __index="0"
__type="sdo:com.primeton.eos.foundation.example.data.CUST">
<CUSTID __type="java:java.lang.Integer">2</CUSTID>
<CUSTCODE __type="java:java.lang.String">cust_2</CUSTCODE>
<CUSTNAME __type="java:java.lang.String">cust_2</CUSTNAME>
<BIRTH __type="java:java.util.Date">2009-09-09 00:00:00</BIRTH>
<SEX/>
<ADDRESS/>
<PHOTO/>
</__entry>
<__entry __id="3" __index="1" __type="sdo:com.primeton.eos.foundation.example.data.CUST">
<CUSTID __type="java:java.lang.Integer">3</CUSTID>
<CUSTCODE __type="java:java.lang.String">cust_3</CUSTCODE>
<CUSTNAME __type="java:java.lang.String">cust_3</CUSTNAME>
<BIRTH __type="java:java.util.Date">2009-09-09 00:00:00</BIRTH>
<SEX/>
<ADDRESS/>
<PHOTO/>
</__entry>
</custes>
</__root>
</bizContext>
- 等效的SQL语句
insert into CUST (CUSTNAME, BIRTH, CUSTID, CUSTCODE) values ('cust_2', to_date('2009-09-09','yyyy-MM-dd'),
2, 'cust_2');
insert into CUST (CUSTNAME, BIRTH, CUSTID, CUSTCODE) values ('cust_3', to_date('2009-09-09','yyyy-MM-dd'),
3, 'cust_3');
- 调用后的bizContext 同调用前。
# queryEntitiesByCriteriaEntity:根据查询条件实体查询所有记录
# 【功能说明】
根据查询条件实体查询所有记录,根据查询条件实体指定查询Entity的字段。如果实体包含关联实体,并且关联关系连线上没有设置为延时加载,那么同时也会把关联实体的数据查询出来。
# 【版本说明】
从EOS 6.0开始提供。
# 【引用路径】
- 本运算逻辑构件对应JAVA方法路径: com.eos.foundation.database.DatabaseUtil.queryEntitiesByCriteriaEntity,包含在com.eos.foundation.jar中。
- 运算逻辑定义在构件包com.eos.foundation中。
# 【使用说明】
- 参数说明
类型 | 名称 | 数据类型 | 参数描述 |
---|---|---|---|
参数 | dsName | String | 数据源名称 |
参数 | criteriaEntity | DataObject | 查询条件实体 |
返回值 | out0 | DataObject[] | 符合查询条件的所有结果 |
抛出异常说明 查询出错时抛出异常com.eos.system.exception.EOSRuntimeException。
规则说明 关于查询条件实体的说明请参考《EOS基础参考手册》中的"数据服务\CriteriaEntity"。
# 【参考案例】
示例:利用查询实体查询CUST表所有数据。
- 参数设置
类型 | 名称 | 数据类型 | 值 | 值类别 | 传递方式 |
---|---|---|---|---|---|
参数 | dsName | String | default | 常量 | 传引用 |
参数 | criteriaEntity | DataObject | criteria | 变量 | 传引用 |
返回值 | out0 | DataObject[] | result | 变量 | 传引用 |
参数描述
- 第一个参数为数据源,更多的说明参见基本操作类DatabaseUtil中的注意
- 第二个参数是查询实体criteria
- 返回值是根据查询实体查询得到的结果数组对象
其他说明 无。
调用前的bizContext
<bizContext>
<__root __id="0" __type="java:java.util.HashMap">
<criteria __id="1" __type="sdo:com.primeton.das.criteria.criteriaType">
<_entity __type="java:java.lang.String">com.primeton.eos.foundation.example.data.CUST</_entity>
<_select/>
<_expr __id="2" __type="java:com.primeton.ext.data.sdo.collection.ContainerAwareList">
<__entry __id="3" __index="0" __type="sdo:com.primeton.das.criteria.exprType">
<_op __type="java:java.lang.String">in</_op>
<_min/>
<_max/>
<_likeRule/>
<_dateRule/>
<_pattern/>
<_year/>
<_quarter/>
<_month/>
<_opProperty/>
<_ref/>
<_processNullValue/>
<CUSTID __type="java:java.lang.String">2,3</CUSTID>
</__entry>
</_expr>
<_and __collection="list"/>
<_or __collection="list"/>
<_not __collection="list"/>
<_order __collection="list"/>
<_orderby __collection="list"/>
<_group/>
<_distinct/>
<_association __collection="list"/>
<_ref __collection="list"/>
<_lock/>
</criteria>
</__root>
</bizContext>
- 等效的SQL语句
select CUSTID, CUSTCODE, CUSTNAME, BIRTH, SEX, ADDRESS from CUST where CUSTID in (2,3)
- 调用后的bizContext
<bizContext>
<__root __id="0" __type="java:java.util.HashMap">
<criteria __id="1" __type="sdo:com.primeton.das.criteria.criteriaType">
<_entity __type="java:java.lang.String">com.primeton.eos.foundation.example.data.CUST</_entity>
<_select/>
<_expr __id="3" __type="java:com.primeton.ext.data.sdo.collection.ContainerAwareList">
<__entry __id="6" __index="0" __type="sdo:com.primeton.das.criteria.exprType">
<_op __type="java:java.lang.String">in</_op>
<_min/>
<_max/>
<_likeRule/>
<_dateRule/>
<_pattern/>
<_year/>
<_quarter/>
<_month/>
<_opProperty/>
<_ref/>
<_processNullValue/>
<CUSTID __type="java:java.lang.String">2,3</CUSTID>
</__entry>
</_expr>
<_and __collection="list"/>
<_or __collection="list"/>
<_not __collection="list"/>
<_order __collection="list"/>
<_orderby __collection="list"/>
<_group/>
<_distinct/>
<_association __collection="list"/>
<_ref __collection="list"/>
<_lock/>
</criteria>
<result __id="2" __type="java:[Lcommonj.sdo.DataObject;">
<__entry __componentType="java:commonj.sdo.DataObject" __id="4" __index="0" __type="sdo:com
.primeton.eos.foundation.example.data.CUST">
<CUSTID __type="java:java.lang.Integer">2</CUSTID>
<CUSTCODE __type="java:java.lang.String">cust_2</CUSTCODE>
<CUSTNAME __type="java:java.lang.String">cust_2</CUSTNAME>
<BIRTH __type="java:java.sql.Date">2009-09-09</BIRTH>
<SEX __isNullOrEmpty="null"/>
<ADDRESS __isNullOrEmpty="null"/>
<PHOTO/>
</__entry>
<__entry __id="5" __index="1" __type="sdo:com.primeton.eos.foundation.example.data.CUST">
<CUSTID __type="java:java.lang.Integer">3</CUSTID>
<CUSTCODE __type="java:java.lang.String">cust_3</CUSTCODE>
<CUSTNAME __type="java:java.lang.String">cust_3</CUSTNAME>
<BIRTH __type="java:java.sql.Date">2009-09-09</BIRTH>
<SEX __isNullOrEmpty="null"/>
<ADDRESS __isNullOrEmpty="null"/>
<PHOTO/>
</__entry>
</result>
</__root>
</bizContext>
# queryEntitiesByCriteriaEntity:根据查询条件实体查询部分记录
# 【功能说明】
根据查询条件实体查询指定起始行、指定长度的记录,根据查询条件实体指定查询Entity的字段。如果实体包含关联实体,并且关联关系连线上没有设置为延时加载,那么同时也会把关联实体的数据查询出来。
# 【版本说明】
从EOS 6.0开始提供。
# 【引用路径】
- 本运算逻辑构件对应JAVA方法路径: com.eos.foundation.database.DatabaseUtil.queryEntitiesByCriteriaEntity,包含在com.eos.foundation.jar中。
- 运算逻辑定义在构件包com.eos.foundation中。
# 【使用说明】
- 参数说明
类型 | 名称 | 数据类型 | 参数描述 |
---|---|---|---|
参数 | dsName | String | 数据源名称 |
参数 | criteriaEntity | DataObject | 查询条件实体 |
参数 | begin | int | 开始记录编号(从0开始) |
参数 | length | int | 查询记录数量 |
返回值 | out0 | DataObject[] | 符合查询条件的所有结果 |
抛出异常说明 查询出错时抛出异常com.eos.system.exception.EOSRuntimeException。
规则说明 关于查询条件实体的说明请参考《EOS基础参考手册》中的"数据服务\CriteriaEntity"。
# 【参考案例】
示例:从第1行开始查询CUST表一条记录。
- 参数设置
类型 | 名称 | 数据类型 | 值 | 值类别 | 传递方式 |
---|---|---|---|---|---|
参数 | dsName | String | default | 常量 | 传引用 |
参数 | criteriaEntity | DataObject | criteria | 变量 | 传引用 |
参数 | begin | int | 1 | 常量 | 传引用 |
参数 | length | int | 1 | 常量 | 传引用 |
返回值 | out0 | DataObject[] | result | 变量 | 传引用 |
参数描述
- 第一个参数为数据源,更多的说明参见基本操作类DatabaseUtil中的注意
- 第二个参数是查询实体criteria
- 第三个参数是查询起始行标志
- 第四个参数是查询记录的长度(记录数)
- 返回值是根据查询实体查询得到的结果数组对象
其他说明 无。
调用前的bizContext
<bizContext>
<__root __id="0" __type="java:java.util.HashMap">
<criteria __id="1" __type="sdo:com.primeton.das.criteria.criteriaType">
<_entity __type="java:java.lang.String">com.primeton.eos.foundation.example.data.CUST</_entity>
<_select/>
<_expr __id="2" __type="java:com.primeton.ext.data.sdo.collection.ContainerAwareList">
<__entry __id="3" __index="0" __type="sdo:com.primeton.das.criteria.exprType">
<_op __type="java:java.lang.String">in</_op>
<_min/>
<_max/>
<_likeRule/>
<_dateRule/>
<_pattern/>
<_year/>
<_quarter/>
<_month/>
<_opProperty/>
<_ref/>
<_processNullValue/>
<CUSTID __type="java:java.lang.String">2,3</CUSTID>
</__entry>
</_expr>
<_and __collection="list"/>
<_or __collection="list"/>
<_not __collection="list"/>
<_order __collection="list"/>
<_orderby __collection="list"/>
<_group/>
<_distinct/>
<_association __collection="list"/>
<_ref __collection="list"/>
<_lock/>
</criteria>
</__root>
</bizContext>
- 等效的SQL语句
select * from
( select row_.*, rownum rownum_ from
( select CUSTID, CUSTCODE, CUSTNAME, BIRTH, SEX, ADDRESS from CUST where CUSTID in (2,3) ) row_
where rownum <= 2
)
where rownum_ > 1
- 调用后的bizContext
<bizContext>
<__root __id="0" __type="java:java.util.HashMap">
<criteria __id="1" __type="sdo:com.primeton.das.criteria.criteriaType">
<_entity __type="java:java.lang.String">com.primeton.eos.foundation.example.data.CUST</_entity>
<_select/>
<_expr __id="3" __type="java:com.primeton.ext.data.sdo.collection.ContainerAwareList">
<__entry __id="5" __index="0" __type="sdo:com.primeton.das.criteria.exprType">
<_op __type="java:java.lang.String">in</_op>
<_min/>
<_max/>
<_likeRule/>
<_dateRule/>
<_pattern/>
<_year/>
<_quarter/>
<_month/>
<_opProperty/>
<_ref/>
<_processNullValue/>
<CUSTID __type="java:java.lang.String">2,3</CUSTID>
</__entry>
</_expr>
<_and __collection="list"/>
<_or __collection="list"/>
<_not __collection="list"/>
<_order __collection="list"/>
<_orderby __collection="list"/>
<_group/>
<_distinct/>
<_association __collection="list"/>
<_ref __collection="list"/>
<_lock/>
</criteria>
<result __id="2" __type="java:[Lcommonj.sdo.DataObject;">
<__entry __componentType="java:commonj.sdo.DataObject" __id="4" __index="0" __type="sdo:com
.primeton.eos.foundation.example.data.CUST">
<CUSTID __type="java:java.lang.Integer">3</CUSTID>
<CUSTCODE __type="java:java.lang.String">cust_3</CUSTCODE>
<CUSTNAME __type="java:java.lang.String">cust_3</CUSTNAME>
<BIRTH __type="java:java.sql.Date">2009-09-09</BIRTH>
<SEX __isNullOrEmpty="null"/>
<ADDRESS __isNullOrEmpty="null"/>
<PHOTO/>
</__entry>
</result>
</__root>
</bizContext>
# queryEntitiesByTemplate:根据SDO数据模板查询条件查询所有记录
# 【功能说明】
根据SDO数据模板查询条件查询所有记录,会查询Entity的所有字段。如果实体包含关联实体,并且关联关系连线上没有设置为延时加载,那么同时也会把关联实体的数据查询出来。
# 【版本说明】
从EOS 6.0开始提供。
# 【引用路径】
- 本运算逻辑构件对应JAVA方法路径: com.eos.foundation.database.DatabaseUtil.queryEntitiesByTemplate,包含在com.eos.foundation.jar中。
- 运算逻辑定义在构件包com.eos.foundation中。
# 【使用说明】
- 参数说明
类型 | 名称 | 数据类型 | 参数描述 |
---|---|---|---|
参数 | dsName | String | 数据源名称 |
参数 | template | DataObject | SDO数据模板查询条件 |
返回值 | out0 | DataObject[] | 查询结果SDO数组 |
抛出异常说明 查询出错时抛出异常com.eos.system.exception.EOSRuntimeException。
规则说明 无。
# 【参考案例】
示例:利用查询模板查询所有的客户信息。
- 参数设置
类型 | 名称 | 数据类型 | 值 | 值类别 | 传递方式 |
---|---|---|---|---|---|
参数 | dsName | String | default | 常量 | 传引用 |
参数 | template | DataObject | template | 变量 | 传引用 |
返回值 | out0 | DataObject[] | result | 变量 | 传引用 |
参数描述
- 第一个参数为数据源,更多的说明参见基本操作类DatabaseUtil中的注意
- 第二个参数是操作的SDO数据模板,这里作为查询条件的数据模板
- 返回值是根据数据模板查询条件查询出的记录
其他说明 无。
调用前的bizContext
<bizContext>
<__root __id="0" __type="java:java.util.HashMap">
<template __id="1" __type="sdo:com.primeton.eos.foundation.example.data.CUST">
<CUSTID/>
<CUSTCODE/>
<CUSTNAME/>
<BIRTH __type="java:java.util.Date">2009-09-09 00:00:00</BIRTH>
<SEX/>
<ADDRESS/>
<PHOTO/>
</template>
</__root>
</bizContext>
- 等效的SQL语句
select CUSTID, CUSTCODE, CUSTNAME, BIRTH, SEX, ADDRESS from CUST where BIRTH=
to_date('2009-09-09','yyyy-MM-dd')
- 调用后的bizContext
<bizContext>
<__root __id="0" __type="java:java.util.HashMap">
<result __id="1" __type="java:[Lcommonj.sdo.DataObject;">
<__entry __componentType="java:commonj.sdo.DataObject" __id="3" __index="0"
__type="sdo:com.primeton.eos.foundation.example.data.CUST">
<CUSTID __type="java:java.lang.Integer">2</CUSTID>
<CUSTCODE __type="java:java.lang.String">cust_2</CUSTCODE>
<CUSTNAME __type="java:java.lang.String">cust_2</CUSTNAME>
<BIRTH __type="java:java.sql.Date">2009-09-09</BIRTH>
<SEX __isNullOrEmpty="null"/>
<ADDRESS __isNullOrEmpty="null"/>
<PHOTO/>
</__entry>
<__entry __id="4" __index="1" __type="sdo:com.primeton.eos.foundation.example.data.CUST">
<CUSTID __type="java:java.lang.Integer">3</CUSTID>
<CUSTCODE __type="java:java.lang.String">cust_3</CUSTCODE>
<CUSTNAME __type="java:java.lang.String">cust_3</CUSTNAME>
<BIRTH __type="java:java.sql.Date">2009-09-09</BIRTH>
<SEX __isNullOrEmpty="null"/>
<ADDRESS __isNullOrEmpty="null"/>
<PHOTO/>
</__entry>
</result>
<template __id="2" __type="sdo:com.primeton.eos.foundation.example.data.CUST">
<CUSTID/>
<CUSTCODE/>
<CUSTNAME/>
<BIRTH __type="java:java.util.Date">2009-09-09 00:00:00</BIRTH>
<SEX/>
<ADDRESS/>
<PHOTO/>
</template>
</__root>
</bizContext>
# queryEntitiesByTemplate:根据SDO数据模板查询条件查询部分记录
# 【功能说明】
根据SDO数据模板查询指定起始行、指定长度的记录。如果实体包含关联实体,并且关联关系连线上没有设置为延时加载,那么同时也会把关联实体的数据查询出来。
# 【版本说明】
从EOS 6.0开始提供。
# 【引用路径】
- 本运算逻辑构件对应JAVA方法路径: com.eos.foundation.database.DatabaseUtil.queryEntitiesByTemplate,包含在com.eos.foundation.jar中。
- 运算逻辑定义在构件包com.eos.foundation中。
# 【使用说明】
- 参数说明
类型 | 名称 | 数据类型 | 参数描述 |
---|---|---|---|
参数 | dsName | String | 数据源名称 |
参数 | template | DataObject | SDO数据模板查询条件 |
参数 | begin | int | 开始记录编号(从0开始) |
参数 | length | Int | length查询记录数量 |
返回值 | out0 | DataObject[] | 符合查询模板的所有结果 |
抛出异常说明 查询出错时抛出异常com.eos.system.exception.EOSRuntimeException。
规则说明 无。
# 【参考案例】
示例:从第1行开始查询CUST表1条记录。
- 参数设置
类型 | 名称 | 数据类型 | 值 | 值类 | 传递方式 |
---|---|---|---|---|---|
参数 | dsName | String | default | 常量 | 传引用 |
参数 | template | DataObject | cust | 变量 | 传引用 |
参数 | begin | int | 1 | 常量 | 传引用 |
参数 | length | Int | 1 | 常量 | 传引用 |
返回值 | out0 | DataObject[] | custs | 变量 | 传引用 |
参数描述
- 第一个参数为数据源,更多的说明参见基本操作类DatabaseUtil中的注意
- 第二个参数是操作的SDO数据模板,这里作为查询条件的数据模板
- 第三个参数是查询条件起始行
- 第四个参数是查询条件的查询长度(记录数)
- 返回值是根据数据模板查询条件查询出的对象数组
其他说明 无。
调用前的bizContext
<bizContext>
<__root __id="0" __type="java:java.util.HashMap">
<template __id="1" __type="sdo:com.primeton.eos.foundation.example.data.CUST">
<CUSTID/>
<CUSTCODE/>
<CUSTNAME/>
<BIRTH __type="java:java.util.Date">2009-09-09 00:00:00</BIRTH>
<SEX/>
<ADDRESS/>
<PHOTO/>
</template>
</__root>
</bizContext>
- 等效的SQL语句 以oracle为例:
select *
from (select row_.*, rownum rownum_
from (select CUSTID, CUSTCODE, CUSTNAME, BIRTH, SEX, ADDRESS
from CUST
where BIRTH = to_date('2009-09-09', 'yyyy-MM-dd')) row_
where rownum <= 2)
where rownum_ > 1
- 调用后的bizContext
<bizContext>
<__root __id="0" __type="java:java.util.HashMap">
<result __id="1" __type="java:[Lcommonj.sdo.DataObject;">
<__entry __componentType="java:commonj.sdo.DataObject" __id="3" __index="0"
__type="sdo:com.primeton.eos.foundation.example.data.CUST">
<CUSTID __type="java:java.lang.Integer">3</CUSTID>
<CUSTCODE __type="java:java.lang.String">cust_3</CUSTCODE>
<CUSTNAME __type="java:java.lang.String">cust_3</CUSTNAME>
<BIRTH __type="java:java.sql.Date">2009-09-09</BIRTH>
<SEX __isNullOrEmpty="null"/>
<ADDRESS __isNullOrEmpty="null"/>
<PHOTO/>
</__entry>
</result>
<template __id="2" __type="sdo:com.primeton.eos.foundation.example.data.CUST">
<CUSTID/>
<CUSTCODE/>
<CUSTNAME/>
<BIRTH __type="java:java.util.Date">2009-09-09 00:00:00</BIRTH>
<SEX/>
<ADDRESS/>
<PHOTO/>
</template>
</__root>
</bizContext>
# saveEntities:保存多条记录
# 【功能说明】
用来把一组SDO对象保存到数据库中,所有操作隶属于一个原子事务。
# 【版本说明】
从EOS 6.0开始提供。
# 【引用路径】
- 本运算逻辑构件对应JAVA方法路径: com.eos.foundation.database.DatabaseUtil.saveEntities,包含在com.eos.foundation.jar中。
- 运算逻辑定义在构件包com.eos.foundation中。
# 【使用说明】
- 参数说明
类型 | 名称 | 数据类型 | 参数描述 |
---|---|---|---|
参数 | dsName | String | 数据源名称 |
参数 | dataObjects | DataObject[] | SDO对象数组 |
抛出异常说明 保存出错时抛出com.eos.system.exception.EOSRuntimeException。
规则说明 无。
# 【参考案例】
示例:保存CUST表的多条记录。
场景描述 用户保存多条CUST记录,若被添加记录主键在表中存在则执行更新操作,若不存在则执行新增操作。
参数设置
类型 | 名称 | 数据类型 | 值 | 值类别 | 传递方式 |
---|---|---|---|---|---|
参数 | dsName | String | default | 常量 | 传引用 |
参数 | dataObjects | DataObject[] | custes | 变量 | 传引用 |
参数描述
- 第一个参数为数据源,更多的说明参见基本操作类DatabaseUtil中的注意
- 第二个参数是操作的SDO对象数组custes
其他说明 无。
调用前的bizContext
<bizContext>
<__root __id="0" __type="java:java.util.HashMap">
<custes __id="1" __type="java:[Lcommonj.sdo.DataObject;">
<__entry __componentType="java:commonj.sdo.DataObject" __id="2" __index="0"
__type="sdo:com.primeton.eos.foundation.example.data.CUST">
<CUSTID __type="java:java.lang.Integer">5</CUSTID>
<CUSTCODE __type="java:java.lang.String">cust_5</CUSTCODE>
<CUSTNAME __type="java:java.lang.String">cust_5</CUSTNAME>
<BIRTH __type="java:java.util.Date">2009-10-02 00:00:00</BIRTH>
<SEX/>
<ADDRESS/>
<PHOTO/>
</__entry>
<__entry __id="3" __index="1" __type="sdo:com.primeton.eos.foundation.example.data.CUST">
<CUSTID __type="java:java.lang.Integer">6</CUSTID>
<CUSTCODE __type="java:java.lang.String">cust_6</CUSTCODE>
<CUSTNAME __type="java:java.lang.String">cust_6</CUSTNAME>
<BIRTH __type="java:java.util.Date">2009-10-13 00:00:00</BIRTH>
<SEX/>
<ADDRESS/>
<PHOTO/>
</__entry>
</custes>
</__root>
</bizContext>
等效的SQL语句
此处只列出同时存在和同时不存在的sql。
- 同时存在:
update CUST set CUSTNAME='cust_5', BIRTH=to_date('2009-10-12','yyyy-MM-dd')
where CUSTID=5 and CUSTCODE='cust_5'
update CUST set CUSTNAME='cust_6', BIRTH=to_date('2009-10-13','yyyy-MM-dd')
where CUSTID=6 and CUSTCODE='cust_6'
- 同时不存在:
insert into CUST (CUSTNAME, BIRTH, CUSTID, CUSTCODE) values ('cust_5',
to_date('2009-10-12','yyyy-MM-dd'), 5, 'cust_5')
insert into CUST (CUSTNAME, BIRTH, CUSTID, CUSTCODE) values ('cust_6',
to_date('2009-10-13','yyyy-MM-dd'), 6, 'cust_6')
- 调用后的bizContext 同调用前。
# saveEntity:保存一条记录
# 【功能说明】
用来保存一条记录到数据库。该构件与inserEntity有所不同:如果数据库没有相同主键的记录则直接插入到数据库对应的表中,否则只是修改已经存在的相同主键的记录的数据。可以简单理解为,它既可用于insert场景,也可用于update场景。
# 【版本说明】
从EOS 6.0开始提供。
# 【引用路径】
- 本运算逻辑构件对应JAVA方法路径: com.eos.foundation.database.DatabaseUtil.saveEntity,包含在com.eos.foundation.jar中。
- 运算逻辑定义在构件包com.eos.foundation中。
# 【使用说明】
- 参数说明
类型 | 名称 | 数据类型 | 参数描述 |
---|---|---|---|
参数 | dsName | String | 数据源名称 |
参数 | dataObject | DataObject | SDO对象 |
抛出异常说明 保存出错时抛出com.eos.system.exception.EOSRuntimeException。
规则说明 无。
# 【参考案例】
示例:保存CUST表的一条记录。
场景描述 用户保存一条CUST记录,如果新增记录主键在表中存在则执行修改操作,如果不存在则执行新增操作。
参数设置
类型 | 名称 | 数据类型 | 值 | 值类别 | 传递方式 |
---|---|---|---|---|---|
参数 | dsName | String | default | 常量 | 传引用 |
参数 | dataObject | DataObject | cust | 变量 | 传引用 |
参数描述
- 第一个参数为数据源,更多的说明参见基本操作类DatabaseUtil中的注意
- 第二个参数是操作的SDO对象cust
其他说明 无。
调用前的bizContext
<bizContext>
<__root __id="0" __type="java:java.util.HashMap">
<cust __id="1" __type="sdo:com.primeton.eos.foundation.example.data.CUST">
<CUSTID __type="java:java.lang.Integer">4</CUSTID>
<CUSTCODE __type="java:java.lang.String">cust_4</CUSTCODE>
<CUSTNAME __type="java:java.lang.String">cust_4</CUSTNAME>
<BIRTH __type="java:java.util.Date">2009-10-01 00:00:00</BIRTH>
<SEX __type="java:java.lang.String">1</SEX>
<ADDRESS/>
<PHOTO/>
</cust>
</__root>
</bizContext>
等效的SQL语句
- 存在CUSTID=4并且CUSTCODE='cust_4'的记录时:
update CUST set CUSTNAME='cust_4', SEX='1', BIRTH=to_date('2009-10-01','yyyy-MM-dd')
where CUSTID=4 and CUSTCODE='cust_4'
- 不存在存在CUSTID=4并且CUSTCODE='cust_4'的记录时:
insert into CUST (CUSTNAME, BIRTH, SEX, CUSTID, CUSTCODE) values ('cust_4',
to_date('2009-10-01','yyyy-MM-dd'), '1', 4, 'cust_4')
- 调用后的bizContext 同调用前。
# updateEntity:更新一条记录
# 【功能说明】
用来更新一条数据库记录,更新时根据实体定义的主键属性的值更新。没有主键不能更新。
# 【版本说明】
从EOS 6.0开始提供。
# 【引用路径】
- 本运算逻辑构件对应JAVA方法路径: com.eos.foundation.database.DatabaseUtil.updateEntity,包含在com.eos.foundation.jar中。
- 运算逻辑定义在构件包com.eos.foundation中。
# 【使用说明】
- 参数说明
类型 | 名称 | 数据类型 | 参数描述 |
---|---|---|---|
参数 | dsName | String | 数据源名称 |
参数 | dataObject | DataObject | SDO对象 |
抛出异常说明 更新出错时抛出com.eos.system.exception.EOSRuntimeException。
规则说明 无。
# 【参考案例】
示例:更新CUST表中的一条记录。
场景描述 用户更新一条CUST记录。
参数设置
类型 | 名称 | 数据类型 | 值 | 值类别 | 传递方式 |
---|---|---|---|---|---|
参数 | dsName | String | default | 常量 | 传引用 |
参数 | dataObject | DataObject | cust | 变量 | 传引用 |
参数描述
- 第一个参数为数据源名称,更多的说明参见基本操作类DatabaseUtil中的注意
- 第二个参数是操作的SDO对象实体cust
其他说明 无。
调用前的bizContext
<bizContext>
<__root __id="0" __type="java:java.util.HashMap">
<cust __id="1" __type="sdo:com.primeton.eos.foundation.example.data.CUST">
<CUSTID __type="java:java.lang.Integer">1</CUSTID>
<CUSTCODE __type="java:java.lang.String">cust_1</CUSTCODE>
<CUSTNAME __type="java:java.lang.String">update_cust_1</CUSTNAME>
<BIRTH/>
<SEX __type="java:java.lang.String">0</SEX>
<ADDRESS/>
<PHOTO/>
</cust>
</__root>
</bizContext>
- 等效的SQL语句
update CUST set CUSTNAME='update_cust_1', SEX=0 where CUSTID=1 and CUSTCODE='cust_1'
- 调用后的bizContext 同调用前。
# updateEntityBatch:更新多条记录
# 【功能说明】
用来更新多条数据库记录,更新时根据实体定义的主键属性的值更新。没有主键不能更新。所有操作隶属于一个原子事务。
# 【版本说明】
从EOS 6.0开始提供。
# 【引用路径】
- 本运算逻辑构件对应JAVA方法路径: com.eos.foundation.data.DatabaseUtil.updateEntityBatch,包含在com.eos.foundation.jar中。
- 运算逻辑定义在构件包com.eos.foundation中。
# 【使用说明】
- 参数说明
类型 | 名称 | 数据类型 | 参数描述 |
---|---|---|---|
参数 | dsName | String | 数据源名称 |
参数 | dataObjects | DataObject[] | SDO数组 |
抛出异常说明 更新出错时抛出com.eos.system.exception.EOSRuntimeException。
规则说明 无。
# 【参考案例】
示例:更新CUST表中的多条记录。
场景描述 用户使用Datacell维护CUST表的内容。用户操作更新多条CUST数据。该场景下可以用updateEntityBatch实现多条记录的插入。
参数设置
类型 | 名称 | 数据类型 | 值 | 值类别 | 传递方式 |
---|---|---|---|---|---|
参数 | dsName | String | default | 常量 | 传引用 |
参数 | dataObjects | DataObject[] | custes | 变量 | 传引用 |
参数描述
- 第一个参数为数据源名称,更多的说明参见基本操作类DatabaseUtil中的注意
- 第二个参数是操作的SDO对象数组custes
其他说明 无。
调用前的bizContext
<bizContext>
<__root __id="0" __type="java:java.util.HashMap">
<custes __id="1" __type="java:[Lcommonj.sdo.DataObject;">
<__entry __componentType="java:commonj.sdo.DataObject" __id="2" __index="0"
__type="sdo:com.primeton.eos.foundation.example.data.CUST">
<CUSTID __type="java:java.lang.Integer">2</CUSTID>
<CUSTCODE __type="java:java.lang.String">cust_2</CUSTCODE>
<CUSTNAME __type="java:java.lang.String">update_cust_2</CUSTNAME>
<BIRTH/>
<SEX/>
<ADDRESS/>
<PHOTO/>
</__entry>
<__entry __id="3" __index="1" __type="sdo:com.primeton.eos.foundation.example.data.CUST">
<CUSTID __type="java:java.lang.Integer">3</CUSTID>
<CUSTCODE __type="java:java.lang.String">cust_3</CUSTCODE>
<CUSTNAME __type="java:java.lang.String">update_cust_3</CUSTNAME>
<BIRTH/>
<SEX/>
<ADDRESS/>
<PHOTO/>
</__entry>
</custes>
</__root>
</bizContext>
- 等效的SQL语句
update CUST set CUSTNAME='update_cust_2' where CUSTID=2 and CUSTCODE='cust_2'
update CUST set CUSTNAME='update_cust_3' where CUSTID=3 and CUSTCODE='cust_3'
- 调用后的bizContext 同调用前。
# updateEntityByCriteriaEntity:根据查询实体更新记录
# 【功能说明】
根据查询实体定义把一个指定的SDO对象更新到数据库中。
# 【版本说明】
从EOS 6.0开始提供。
# 【引用路径】
- 本运算逻辑构件对应JAVA方法路径: com.eos.foundation.database.DatabaseUtil.updateEntityByCriteriaEntity,包含在com.eos.foundation.jar中。
- 运算逻辑定义在构件包com.eos.foundation中。
# 【使用说明】
- 参数说明
类型 | 名称 | 数据类型 | 参数描述 |
---|---|---|---|
参数 | dsName | String | 数据源名称 |
参数 | value | DataObject | 数据实体值 |
参数 | criteriaEntity | DataObject | 查询条件定义对象 |
返回值 | out0 | int | 更新记录数 |
抛出异常说明 更新失败时抛出com.eos.system.exception.EOSRuntimeException。
规则说明 无。
# 【参考案例】
示例:根据查询条件更新CUST表中的一条记录。
- 参数设置
类型 | 名称 | 数据类型 | 值 | 值类别 | 传递方式 |
---|---|---|---|---|---|
参数 | dsName | String | default | 常量 | 传引用 |
参数 | value | DataObject | updateData | 变量 | 传引用 |
参数 | criteriaEntity | DataObject | criteriaEntity | 变量 | 传引用 |
返回值 | out0 | int | result | 常量 | 传引用 |
参数描述
- 第一个参数为数据源,更多的说明参见基本操作类DatabaseUtil中的注意
- 第二个参数是操作的SDO数据对象
- 第三个参数是查询实体criteriaEntity
- 第四个参数是被修改记录返回值
其他说明 无。
调用前的bizContext
<bizContext>
<__root __id="0" __type="java:java.util.HashMap">
<criteriaEntity __id="1" __type="sdo:com.primeton.das.criteria.criteriaType">
<_entity __type="java:java.lang.String">com.primeton.eos.foundation.example.data.CUST</_entity>
<_select/>
<_expr __id="3" __type="java:com.primeton.ext.data.sdo.collection.ContainerAwareList">
<__entry __id="4" __index="0" __type="sdo:com.primeton.das.criteria.exprType">
<_op __type="java:java.lang.String">=</_op>
<_min/>
<_max/>
<_likeRule/>
<_dateRule/>
<_pattern/>
<_year/>
<_quarter/>
<_month/>
<_opProperty/>
<_ref/>
<_processNullValue/>
<CUSTID __type="java:java.lang.String">3</CUSTID>
</__entry>
</_expr>
<_and __collection="list"/>
<_or __collection="list"/>
<_not __collection="list"/>
<_order __collection="list"/>
<_orderby __collection="list"/>
<_group/>
<_distinct/>
<_association __collection="list"/>
<_ref __collection="list"/>
<_lock/>
</criteriaEntity>
<updateData __id="2" __type="sdo:com.primeton.eos.foundation.example.data.CUST">
<CUSTID/>
<CUSTCODE/>
<CUSTNAME __type="java:java.lang.String">updateByCriteria</CUSTNAME>
<BIRTH/>
<SEX/>
<ADDRESS/>
<PHOTO/>
</updateData>
</__root>
</bizContext>
- 等效的SQL语句
update CUST set CUSTNAME='updateByCriteria' where CUST.CUSTID=3
- 调用后的bizContext
<bizContext>
<__root __id="0" __type="java:java.util.HashMap">
<criteriaEntity __id="1" __type="sdo:com.primeton.das.criteria.criteriaType">
<_entity __type="java:java.lang.String">com.primeton.eos.foundation.example.data.CUST</_entity>
<_select/>
<_expr __id="3" __type="java:com.primeton.ext.data.sdo.collection.ContainerAwareList">
<__entry __id="4" __index="0" __type="sdo:com.primeton.das.criteria.exprType">
<_op __type="java:java.lang.String">=</_op>
<_min/>
<_max/>
<_likeRule/>
<_dateRule/>
<_pattern/>
<_year/>
<_quarter/>
<_month/>
<_opProperty/>
<_ref/>
<_processNullValue/>
<CUSTID __type="java:java.lang.String">3</CUSTID>
</__entry>
</_expr>
<_and __collection="list"/>
<_or __collection="list"/>
<_not __collection="list"/>
<_order __collection="list"/>
<_orderby __collection="list"/>
<_group/>
<_distinct/>
<_association __collection="list"/>
<_ref __collection="list"/>
<_lock/>
</criteriaEntity>
<result __type="java:java.lang.Integer">1</result>
<updateData __id="2" __type="sdo:com.primeton.eos.foundation.example.data.CUST">
<CUSTID/>
<CUSTCODE/>
<CUSTNAME __type="java:java.lang.String">updateByCriteria</CUSTNAME>
<BIRTH/>
<SEX/>
<ADDRESS/>
<PHOTO/>
</updateData>
</__root>
</bizContext>
# updateEntityByTemplate:根据SDO数据模板查询条件更新记录
# 【功能说明】
根据一个SDO查询模板的数据,相应的更新数据库中某条记录。
# 【版本说明】
从EOS 6.0开始提供。
# 【引用路径】
- 本运算逻辑构件对应JAVA方法路径: com.eos.foundation.database.DatabaseUtil.updateEntityByTemplate,包含在com.eos.foundation.jar中。
- 运算逻辑定义在构件包com.eos.foundation中。
# 【使用说明】
- 参数说明
类型 | 名称 | 数据类型 | 参数描述 |
---|---|---|---|
参数 | dsName | String | 数据源名称 |
参数 | value | DataObject | 实体值 |
参数 | template | DataObject | 实体模板条件 |
返回值 | out0 | int | 更新记录数 |
抛出异常说明 更新失败时抛出com.eos.system.exception.EOSRuntimeException。
规则说明 无。
# 【参考案例】
示例:根据查询模板更新CUST表中BIRTH='2009-09-09'的记录。
- 参数设置
类型 | 名称 | 数据类型 | 值 | 值类别 | 传递方式 |
---|---|---|---|---|---|
参数 | dsName | String | default | 常量 | 传引用 |
参数 | value | DataObject | updateData | 变量 | 传引用 |
参数 | template | DataObject | template | 变量 | 传引用 |
返回值 | out0 | int | result | 变量 | 传引用 |
参数描述
- 第一个参数为数据源名称,更多的说明参见基本操作类DatabaseUtil中的注意
- 第二个参数是操作的SDO对象updateData
- 第三个参数是SDO查询模板对象template
其他说明 无。
调用前的bizContext
<bizContext>
<__root __id="0" __type="java:java.util.HashMap">
<template __id="1" __type="sdo:com.primeton.eos.foundation.example.data.CUST">
<CUSTID/>
<CUSTCODE/>
<CUSTNAME/>
<BIRTH __type="java:java.util.Date">2009-09-09 00:00:00</BIRTH>
<SEX/>
<ADDRESS/>
<PHOTO/>
</template>
<updateData __id="2" __type="sdo:com.primeton.eos.foundation.example.data.CUST">
<CUSTID/>
<CUSTCODE/>
<CUSTNAME __type="java:java.lang.String">updateByTemplate</CUSTNAME>
<BIRTH/>
<SEX/>
<ADDRESS/>
<PHOTO/>
</updateData>
</__root>
</bizContext>
- 等效的SQL语句
update CUST set CUSTNAME='updateByTemplate' where CUST.BIRTH=to_date('2009-09-09','yyyy-MM-dd')
- 调用后的bizContext
<bizContext>
<__root __id="0" __type="java:java.util.HashMap">
<result __type="java:java.lang.Integer">2</result>
<template __id="1" __type="sdo:com.primeton.eos.foundation.example.data.CUST">
<CUSTID/>
<CUSTCODE/>
<CUSTNAME/>
<BIRTH __type="java:java.util.Date">2009-09-09 00:00:00</BIRTH>
<SEX/>
<ADDRESS/>
<PHOTO/>
</template>
<updateData __id="2" __type="sdo:com.primeton.eos.foundation.example.data.CUST">
<CUSTID/>
<CUSTCODE/>
<CUSTNAME __type="java:java.lang.String">updateByTemplate</CUSTNAME>
<BIRTH/>
<SEX/>
<ADDRESS/>
<PHOTO/>
</updateData>
</__root>
</bizContext>
← 密码处理 扩展操作类DatabaseExt →