# com.eos.foundation.database.CriteriaUtil
# 构件包说明
本工具类实现了对查询条件实体(CriteriaEntity)的操作。CriteriaEntity是满足特定schema约束的SDO对象,用于表示对一个实体的查询定义。
更多关于CriteriaEntity的信息和示例请参见《EOS基础参考手册》中的"数据服务\CriteriaEntity"及其"示例"。
# 运算逻辑构件使用说明
该构件包包含以下构件:
| 序号 | 方法 | 功能描述 | 
|---|---|---|
| 1 | appendExpr(DataObject criteria, String path, String... exprValue) | 给查询实体增加一个查询条件 | 
| 2 | appendSelectField(String type, DataObject criteria, String... fields) | 增加查询条件实体中的查询字段 | 
| 3 | removeAllSelectField(String type, DataObject criteria) | 删除查询条件实体中所有查询字段 | 
| 4 | removeExpr(DataObject criteria, String path, boolean removeAll, String... fields) | 删除查询条件实体中对某个字段的查询条件 | 
| 5 | removeSelectField(String type, DataObject criteria, String... fields) | 删除查询条件实体中的查询字段 | 
| 6 | setSelectField(String type, DataObject criteria, String... fields) | 设置查询条件实体中的查询字段,会将原来已经设置的所有字段删除掉 | 
| 7 | translateCriteriaEntity2Criteria(String dsName, DataObject criteriaEntity) | 将查询条件实体转换为IDASCriteria | 
| 8 | translateTemplate2Criteria(String dsName, DataObject template) | 将SDO数据查询模板转换为hibernate criteria | 
| 9 | translateTemplate2CriteriaEntity(DataObject template) | 将SDO数据查询模板转换为查询条件实体查询条件 | 
# appendExpr:给查询条件实体增加一个查询条件
# 【功能说明】
给查询条件实体增加一个查询条件。
在创建一个查询条件实体后,需要为查询条件实体增加一个查询表达式,有如下一个criteria entity:
<criteria>
    <_expr>
        <id>1</id>
    </_expr>
    <_or>
        <_expr>
            <id>2</id>
        </_expr>
    </_or>
</criteria>
- 如果需要给上面查询条件实体增加查询条件,增加在第一层的_expr上,参数如下:
 
path            null | "" | "_expr"
exprValue   String[] {"name", "tom", "_op", "like"}
- 如果给查询条件实体的_or条件中增加条件,参数如下:
 
path            "_or" | "_or/" | "_or/_expr"
exprValue   String[] {"name", "tom", "_op", "like"}
# 【版本说明】
从EOS 6.0开始提供。
# 【引用路径】
- 本运算逻辑构件对应JAVA方法路径: com.eos.foundation.database.CriteriaUtil.appendExpr,包含在com.eos.foundation.jar中。
 - 运算逻辑定义在构件包com.eos.foundation中。
 
# 【使用说明】
- 参数说明
 
| 类型 | 名称 | 数据类型 | 参数描述 | 
|---|---|---|---|
| 参数 | criteria | DataObject | 查询条件实体查询条件 | 
| 参数 | path | String | 查询表达式所在路径 | 
| 参数 | exprValue | String... | 字符串变参,查询条件值(必须成对设置) | 
抛出异常说明 无。
规则说明 关于查询条件实体的说明请参考《EOS基础参考手册》中的"数据服务\CriteriaEntity"。
# 【参考案例】
示例:为CUST表的查询实体增加一个查询条件。
场景描述 用户在查询CUST表时,需要在后台为查询实体增加一个查询条件。该场景下可以使用appendExpr来实现添加隐藏查询条件。
参数设置
| 类型 | 名称 | 数据类型 | 值 | 值类别 | 传递方式 | 
|---|---|---|---|---|---|
| 参数 | criteria | DataObject | criteria | 变量 | 传引用 | 
| 参数 | path | String | _expr | 常量 | 传引用 | 
| 参数 | exprValue | String | _op | 常量 | 传引用 | 
| 参数 | param1 | String | = | 常量 | 传引用 | 
| 参数 | param2 | String | BIRTH | 常量 | 传引用 | 
| 参数 | param3 | String | 2009-09-09 | 常量 | 传引用 | 
| 参数 | param4 | String | _pattern | 常量 | 传引用 | 
| 参数 | param5 | String | yyyy-MM-dd | 常量 | 传引用 | 
参数描述
- 第一个参数为查询条件实体,criteria为CUST表的查询条件实体
 - 第二个参数为表达式所在路径,_expr 为criteria实体中一个属性名
 - 第三个参数为表达式的操作符,_op为_expr 的属性名
 - 第四个参数为op的赋值=
 - 第五个参数为BIRTH为CUST的属性名
 - 第六个参数为BIRTH的赋值
 - 第六个参数为_pattern,用于描述日期的格式
 - 第六个参数为yyyy-MM-dd,表明按那种格式把字符串'2009-09-09'转换成java.util.Date类型
 
其他说明
无。
调用前的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 __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/>
        </criteria>
    </__root>
</bizContext>
- 等效的SQL语句
 
select * from CUST where CUSTID = '1' and CUSTNAME = '1' and CUSTCODE = '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="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">=</_op>
                    <_min/>
                    <_max/>
                    <_likeRule/>
                    <_dateRule/>
                    <_pattern __type="java:java.lang.String">yyyy-MM-dd</_pattern>
                    <_year/>
                    <_quarter/>
                    <_month/>
                    <_opProperty/>
                    <_ref/>
                    <_processNullValue/>
                    <BIRTH __type="java:java.lang.String">2009-09-09</BIRTH>
                </__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>
# appendSelectField:增加查询条件实体中的查询字段
# 【功能说明】
增加查询条件实体中的查询字段。
# 【版本说明】
从EOS 6.0开始提供。
# 【引用路径】
- 本运算逻辑构件对应JAVA方法路径: com.eos.foundation.database.CriteriaUtil.appendSelectField,包含在com.eos.foundation.jar中。
 - 运算逻辑定义在构件包com.eos.foundation中。
 
# 【使用说明】
- 参数说明
 
| 类型 | 名称 | 数据类型 | 参数描述 | 
|---|---|---|---|
| 参数 | type | String | 查询select的字段操作类型: | 
| 参数 | criteria | DataObject | 查询条件实体查询条件 | 
| 参数 | fields | String... | 需要查询的实体的字段名 | 
抛出异常说明 无。
规则说明 关于查询条件实体的说明请参考《EOS基础参考手册》中的"数据服务\CriteriaEntity"。
# 【参考案例】
示例:为CUST表的查询实体增加一个查询字段。
场景描述 无。
参数设置
| 类型 | 名称 | 数据类型 | 值 | 值类别 | 传递方式 | 
|---|---|---|---|---|---|
| 参数 | type | String | select | 常量 | 传引用 | 
| 参数 | criteria | DataObject | criteria | 变量 | 传引用 | 
| 参数 | fields | String | CUSTID | 常量 | 传引用 | 
参数描述
- 第一个参数为查询select的字段操作类型,select表示需要增加_select查询字段;
 - 第二个参数criteria为该构件操作的查询实体;
 - 第三个单数为需要查询的实体的字段名,表示将_select下增加一个查询字段CUSTID。
 
其他说明
无。
调用前的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 __id="2" __type="sdo:com.primeton.das.criteria.selectType">
                <_field __id="3" __type="java:com.primeton.ext.data.sdo.collection.ContainerAwareList">
                    <__entry __index="0" __type="java:java.lang.String">CUSTNAME</__entry>
                </_field>
                <_count __collection="list"/>
                <_avg __collection="list"/>
                <_sum __collection="list"/>
                <_min __collection="list"/>
                <_max __collection="list"/>
            </_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/>
        </criteria>
    </__root>
</bizContext>
- 调用后的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 __id="2" __type="sdo:com.primeton.das.criteria.selectType">
                <_field __id="3" __type="java:com.primeton.ext.data.sdo.collection.ContainerAwareList">
                    <__entry __index="0" __type="java:java.lang.String">CUSTNAME</__entry>
                    <__entry __index="1" __type="java:java.lang.String">CUSTID</__entry>
                </_field>
                <_count __collection="list"/>
                <_avg __collection="list"/>
                <_sum __collection="list"/>
                <_min __collection="list"/>
                <_max __collection="list"/>
            </_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/>
        </criteria>
    </__root>
</bizContext>
# removeAllSelectField:删除查询条件实体中所有查询字段
# 【功能说明】
删除查询条件实体中所有查询字段。
# 【版本说明】
从EOS 6.0开始提供。
# 【引用路径】
- 本运算逻辑构件对应JAVA方法路径: com.eos.foundation.database.CriteriaUtil.removeAllSelectField,包含在com.eos.foundation.jar中。
 - 运算逻辑定义在构件包com.eos.foundation中。
 
# 【使用说明】
- 参数说明
 
| 类型 | 名称 | 数据类型 | 参数描述 | 
|---|---|---|---|
| 参数 | type | String | 查询select的字段操作类型:  | 
| 参数 | criteria | DataObject | 查询条件实体查询条件 | 
抛出异常说明 无。
规则说明 关于查询条件实体的说明请参考《EOS基础参考手册》中的"数据服务\CriteriaEntity"。
# 【参考案例】
示例:删除CUST表的查询实体中的所有查询字段。
场景描述 无。
参数设置
| 类型 | 名称 | 数据类型 | 值 | 值类别 | 传递方式 | 
|---|---|---|---|---|---|
| 参数 | type | String | select | 常量 | 传引用 | 
| 参数 | criteria | DataObject | criteria | 变量 | 传引用 | 
参数描述
- 第一个参数为查询select的字段操作类型,select表示需要删除_select中的查询字段;
 - 第二个参数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 __id="2" __type="sdo:com.primeton.das.criteria.selectType">
                <_field __id="3" __type="java:com.primeton.ext.data.sdo.collection.ContainerAwareList">
                    <__entry __index="0" __type="java:java.lang.String">CUSTNAME</__entry>
                    <__entry __index="1" __type="java:java.lang.String">CUSTID</__entry>
                </_field>
                <_count __collection="list"/>
                <_avg __collection="list"/>
                <_sum __collection="list"/>
                <_min __collection="list"/>
                <_max __collection="list"/>
            </_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/>
        </criteria>
    </__root>
</bizContext>
- 调用后的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 __id="2" __type="sdo:com.primeton.das.criteria.selectType">
                <_field __collection="list"/>
                <_count __collection="list"/>
                <_avg __collection="list"/>
                <_sum __collection="list"/>
                <_min __collection="list"/>
                <_max __collection="list"/>
            </_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/>
        </criteria>
    </__root>
</bizContext>
# removeExpr:删除查询条件实体中对某个字段的查询条件
# 【功能说明】
删除查询条件实体中对某个字段的查询条件。
注意:如果需要删除第一层中的查询条件,参数如下:
path        null指针 | "" | "_expr"
如果需要删除第二层中的查询条件,参数如下(多层方式以此类推):
path        "_or" | "_or/" | "_or/_expr"
# 【版本说明】
从EOS 6.0开始提供。
# 【引用路径】
- 本运算逻辑构件对应JAVA方法路径: com.eos.foundation.database.CriteriaUtil.removeExpr,包含在com.eos.foundation.jar中。
 - 运算逻辑定义在构件包com.eos.foundation中。
 
# 【使用说明】
- 参数说明
 
| 类型 | 名称 | 数据类型 | 参数描述 | 
|---|---|---|---|
| 参数 | criteria | DataObject | 查询条件实体查询条件 | 
| 参数 | path | String | 查询表达式所在路径 | 
| 参数 | removeAll | boolean | 是否删除满足每个条件的所有_expr(false 只删除满足查询条件fileds中每个filed的第一个_expr) | 
| 参数 | fields | String... | 字符串变参,多个查询条件的字段名 | 
- 抛出异常说明 无。
 - 规则说明 关于查询条件实体的说明请参考《EOS基础参考手册》中的"数据服务\CriteriaEntity"。
 
# 【参考案例】
示例:根据业务逻辑需要删除查询条件实体CUST的CUSTID查询条件。
场景描述 用户在实现一个查询算法时,根据查询实体的查询条件不能得到记录,接着去掉一个查询条件,继续查询。
参数设置
| 类型 | 名称 | 数据类型 | 值 | 值类别 | 传递方式 | 
|---|---|---|---|---|---|
| 参数 | criteria | DataObject | criteria | 变量 | 传引用 | 
| 参数 | path | String | _expr | 常量 | 传引用 | 
| 参数 | removeAll | bloolean | false | 常量 | 传引用 | 
| 参数 | fields | String | CUSTID | 常量 | 传引用 | 
参数描述
第一个参数为查询条件实体,criteria为CUST表的查询实体;
第二个参数为表达式所在路径,_expr 为criteria实体中一个属性名;
第三个参数为是否删除列出的所有字段条件;
第四个参数为CUSTID为字段名。
说明
如果criteria中有2个_expr都是对CUSTID设置查询条件,当removeAll为false时,只删除第一个CUSTID查询条件;removeAll为true,将删除全部的CUSTID查询条件。
其他说明
无。
调用前的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/>
                   <_min/>
                   <_max/>
                   <_likeRule/>
                   <_dateRule/>
                   <_pattern/>
                   <_year/>
                   <_quarter/>
                   <_month/>
                   <_opProperty/>
                   <_ref/>
                   <_processNullValue/>
                   <CUSTID __type="java:java.lang.String">1</CUSTID>
               </__entry>
               <__entry __id="4" __index="1" __type="sdo:com.primeton.das.criteria.exprType">
                   <_op __type="java:java.lang.String">like</_op>
                   <_min/>
                   <_max/>
                   <_likeRule __type="java:java.lang.String">all</_likeRule>
                   <_dateRule/>
                   <_pattern/>
                   <_year/>
                   <_quarter/>
                   <_month/>
                   <_opProperty/>
                   <_ref/>
                   <_processNullValue/>
                   <CUSTNAME __type="java:java.lang.String">cust</CUSTNAME>
               </__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>
- 调用后的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">like</_op>
                    <_min/>
                    <_max/>
                    <_likeRule __type="java:java.lang.String">all</_likeRule>
                    <_dateRule/>
                    <_pattern/>
                    <_year/>
                    <_quarter/>
                    <_month/>
                    <_opProperty/>
                    <_ref/>
                    <_processNullValue/>
                    <CUSTNAME __type="java:java.lang.String">cust</CUSTNAME>
                </__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>
# removeSelectField:删除查询条件实体中的查询字段
# 【功能说明】
删除查询条件实体中的查询字段。
# 【版本说明】
从EOS 6.0开始提供。
# 【引用路径】
- 本运算逻辑构件对应JAVA方法路径: com.eos.foundation.database.CriteriaUtil.removeSelectField,包含在com.eos.foundation.jar中。
 - 运算逻辑定义在构件包com.eos.foundation中。
 
# 【使用说明】
- 参数说明
 
| 类型 | 名称 | 数据类型 | 参数描述 | 
|---|---|---|---|
| 参数 | type | String | 查询select的字段操作类型:  | 
| 参数 | criteria | DataObject | 查询条件实体查询条件 | 
| 参数 | fields | String... | 需要查询的实体的字段名 | 
抛出异常说明 无。
规则说明 关于查询条件实体的说明请参考《EOS基础参考手册》中的"数据服务\CriteriaEntity"。
# 【参考案例】
示例:删除CUST表的查询实体中的CUSTNAME查询字段。
场景描述 无。
参数设置
| 类型 | 名称 | 数据类型 | 值 | 值类别 | 传递方式 | 
|---|---|---|---|---|---|
| 参数 | type | String | select | 常量 | 传引用 | 
| 参数 | criteria | DataObject | criteria | 变量 | 传引用 | 
| 参数 | fields | String | CUSTNAME | 常量 | 传引用 | 
参数描述
- 第一个参数为查询select的字段操作类型,select表示需要删除_select中的查询字段;
 - 第二个单数criteria为该构件操作的查询实体;
 - 第三个参数为需要查询的实体的字段名,表示将_select原有的查询字段CUSTNMAE字段删除掉。
 
其他说明
无。
调用前的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 __id="2" __type="sdo:com.primeton.das.criteria.selectType">
                <_field __id="3" __type="java:com.primeton.ext.data.sdo.collection.ContainerAwareList">
                    <__entry __index="0" __type="java:java.lang.String">CUSTNAME</__entry>
                    <__entry __index="1" __type="java:java.lang.String">CUSTID</__entry>
                </_field>
                <_count __collection="list"/>
                <_avg __collection="list"/>
                <_sum __collection="list"/>
                <_min __collection="list"/>
                <_max __collection="list"/>
            </_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/>
        </criteria>
    </__root>
</bizContext>
- 调用后的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 __id="2" __type="sdo:com.primeton.das.criteria.selectType">
                <_field __id="3" __type="java:com.primeton.ext.data.sdo.collection.ContainerAwareList">
                    <__entry __index="0" __type="java:java.lang.String">CUSTID</__entry>
                </_field>
                <_count __collection="list"/>
                <_avg __collection="list"/>
                <_sum __collection="list"/>
                <_min __collection="list"/>
                <_max __collection="list"/>
            </_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/>
        </criteria>
    </__root>
</bizContext>
# translateCriteriaEntity2Criteria:将查询条件实体转换为IDASCriteria
# 【功能说明】
将查询条件实体转换为IDASCriteria。
# 【版本说明】
从EOS 6.0开始提供。
# 【引用路径】
- 本运算逻辑构件对应JAVA方法路径: com.eos.foundation.database.CriteriaUtil.translateCriteriaEntity2Criteria,包含在com.eos.foundation.jar中。
 - 运算逻辑定义在构件包com.eos.foundation中。
 
# 【使用说明】
- 参数说明
 
| 类型 | 名称 | 数据类型 | 参数描述 | 
|---|---|---|---|
| 参数 | dsName | String | 数据源名称 | 
| 参数 | criteriaEntity | DataObject | 查询条件实体 | 
| 返回值 | out0 | IDASCriteria | IDASCriteria查询条件 | 
抛出异常说明 无。
规则说明 无。
# 【参考案例】
示例:将一个查询条件实体转换为IDASCriteria。
场景描述 无。
参数设置
| 类型 | 名称 | 数据类型 | 值 | 值类别 | 传递方式 | 
|---|---|---|---|---|---|
| 参数 | dsName | String | default | 常量 | 传引用 | 
| 参数 | template | DataObject | template | 变量 | 传引用 | 
| 返回值 | out0 | IDASCriteria | result | 变量 | 传引用 | 
参数描述
- 第一个参数为数据源,更多的说明参见基本操作类DatabaseUtil中的注意
 - 第二个参数为查询条件实体,criteriaEntity为表CUST的查询条件实体;
 - 返回值为输出的IDASCriteria查询条件。
 
其他说明
无。
调用前的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="2" __type="java:com.primeton.ext.data.sdo.collection.ContainerAwareList">
                <__entry __id="3" __index="0" __type="sdo:com.primeton.das.criteria.exprType">
                    <_op/>
                    <_min/>
                    <_max/>
                    <_likeRule/>
                    <_dateRule/>
                    <_pattern/>
                    <_year/>
                    <_quarter/>
                    <_month/>
                    <_opProperty/>
                    <_ref/>
                    <_processNullValue/>
                    <CUSTID __type="java:java.lang.Integer">1</CUSTID>
                </__entry>
                <__entry __id="4" __index="1" __type="sdo:com.primeton.das.criteria.exprType">
                    <_op/>
                    <_min/>
                    <_max/>
                    <_likeRule/>
                    <_dateRule/>
                    <_pattern/>
                    <_year/>
                    <_quarter/>
                    <_month/>
                    <_opProperty/>
                    <_ref/>
                    <_processNullValue/>
                    <CUSTNAME __type="java:java.lang.String">cust_1</CUSTNAME>
                </__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>
    </__root>
</bizContext>
- 调用后的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="2" __type="java:com.primeton.ext.data.sdo.collection.ContainerAwareList">
                <__entry __id="3" __index="0" __type="sdo:com.primeton.das.criteria.exprType">
                    <_op/>
                    <_min/>
                    <_max/>
                    <_likeRule/>
                    <_dateRule/>
                    <_pattern/>
                    <_year/>
                    <_quarter/>
                    <_month/>
                    <_opProperty/>
                    <_ref/>
                    <_processNullValue/>
                    <CUSTID __type="java:java.lang.Integer">1</CUSTID>
                </__entry>
                <__entry __id="4" __index="1" __type="sdo:com.primeton.das.criteria.exprType">
                    <_op/>
                    <_min/>
                    <_max/>
                    <_likeRule/>
                    <_dateRule/>
                    <_pattern/>
                    <_year/>
                    <_quarter/>
                    <_month/>
                    <_opProperty/>
                    <_ref/>
                    <_processNullValue/>
                    <CUSTNAME __type="java:java.lang.String">cust_1</CUSTNAME>
                </__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 __unsupported="true">This value not supported be serialized by eos,
                  maybe it has not default constructor!!
                  class:class com.primeton.das.entity.impl.DASCriteriaImpl
                  ,toString:com.primeton.das.entity.impl.DASCriteriaImpl@12b479b</result>
    </__root>
</bizContext>
# translateTemplate2Criteria:将SDO数据查询模板转换为IDASCriteria
# 【功能说明】
将SDO数据查询模板转换为IDASCriteria。
# 【版本说明】
从EOS 6.0开始提供。
# 【引用路径】
- 本运算逻辑构件对应JAVA方法路径: com.eos.foundation.database.CriteriaUtil.translateTemplate2Criteria,包含在com.eos.foundation.jar中。
 - 运算逻辑定义在构件包com.eos.foundation中。
 
# 【使用说明】
- 参数说明
 
| 类型 | 名称 | 数据类型 | 参数描述 | 
|---|---|---|---|
| 参数 | dsName | String | 数据源名称 | 
| 参数 | template | DataObject | SDO数据模板查询条件 | 
| 返回值 | out0 | IDASCriteria | IDASCriteria查询条件 | 
抛出异常说明 无。
规则说明 无。
# 【参考案例】
示例:将一个SDO数据查询模板转换为IDASCriteria。
场景描述 无。
参数设置
| 类型 | 名称 | 数据类型 | 值 | 值类别 | 传递方式 | 
|---|---|---|---|---|---|
| 参数 | dsName | String | default | 常量 | 传引用 | 
| 参数 | template | DataObject | template | 变量 | 传引用 | 
| 返回值 | out0 | IDASCriteria | result | 变量 | 传引用 | 
参数描述
- 第一个参数为数据源,更多的说明参见基本操作类DatabaseUtil中的注意
 - 第二个参数为SDO数据模板,template为表CUST的SDO数据模板;
 - 返回值为输出的IDASCriteria查询条件。
 
其他说明
无。
调用前的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">1</CUSTID>
            <CUSTCODE/>
            <CUSTNAME __type="java:java.lang.String">cust_1</CUSTNAME>
            <BIRTH/>
            <SEX/>
            <ADDRESS/>
            <PHOTO/>
        </template>
    </__root>
</bizContext>
- 调用后的bizContext
 
<bizContext>
    <__root __id="0" __type="java:java.util.HashMap">
        <result __unsupported="true">This value not supported be serialized by eos,
                maybe it has not default constructor!!
                class:class com.primeton.das.entity.impl.DASCriteriaImpl
                ,toString:com.primeton.das.entity.impl.DASCriteriaImpl@173b1c8</result>
        <template __id="1" __type="sdo:com.primeton.eos.foundation.example.data.CUST">
            <CUSTID __type="java:java.lang.Integer">1</CUSTID>
            <CUSTCODE/>
            <CUSTNAME __type="java:java.lang.String">cust_1</CUSTNAME>
            <BIRTH/>
            <SEX/>
            <ADDRESS/>
            <PHOTO/>
        </template>
    </__root>
</bizContext>
# translateTemplate2CriteriaEntity:将SDO数据查询模板转换为查询条件实体查询条件
# 【功能说明】
将SDO数据查询模板转换为查询条件实体。
# 【版本说明】
从EOS 6.0开始提供。
# 【引用路径】
- 本运算逻辑构件对应JAVA方法路径: com.eos.foundation.database.CriteriaUtil.translateTemplate2CriteriaEntity,包含在com.eos.foundation.jar中。
 - 运算逻辑定义在构件包com.eos.foundation中。
 
# 【使用说明】
- 参数说明
 
| 类型 | 名称 | 数据类型 | 参数描述 | 
|---|---|---|---|
| 参数 | template | DataObject | SDO数据模板查询条件 | 
| 返回值 | out0 | DataObject | 查询条件实体 | 
抛出异常说明 转换失败抛出异常com.eos.system.exception.EOSRuntimeException。
规则说明 关于查询条件实体的说明请参考《EOS基础参考手册》中的"数据服务\CriteriaEntity"。
# 【参考案例】
示例:将CUST表的普通实体转换成一个查询实体。
场景说明 用户需要把CUST的普通实体转换成一个查询实体,以帮助其针对查询实体设置其他查询条件。
参数设置
| 类型 | 名称 | 数据类型 | 值 | 值类别 | 传递方式 | 
|---|---|---|---|---|---|
| 参数 | template | DataObject | template | 变量 | 传引用 | 
| 返回值 | out0 | DataObject | criteriaEnity | 变量 | 传引用 | 
参数描述
- 第一个参数:cust为输入的SDO数据模板;
 - 返回值:criteriaEntity为输出的查询实体。
 
其他说明
无。
调用前的bizContext
<bizContext>
    <__root __id="0" __type="java:java.util.HashMap">
        <criteriaEntity __id="1" __type="sdo:com.primeton.das.criteria.criteriaType">
            <_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>
        <template __id="2" __type="sdo:com.primeton.eos.foundation.example.data.CUST">
            <CUSTID __type="java:java.lang.Integer">1</CUSTID>
            <CUSTCODE/>
            <CUSTNAME __type="java:java.lang.String">cust_1</CUSTNAME>
            <BIRTH/>
            <SEX/>
            <ADDRESS/>
            <PHOTO/>
        </template>
    </__root>
</bizContext>
- 调用后的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/>
                    <_min/>
                    <_max/>
                    <_likeRule/>
                    <_dateRule/>
                    <_pattern/>
                    <_year/>
                    <_quarter/>
                    <_month/>
                    <_opProperty/>
                    <_ref/>
                    <_processNullValue/>
                    <CUSTID __type="java:java.lang.Integer">1</CUSTID>
                </__entry>
                <__entry __id="5" __index="1" __type="sdo:com.primeton.das.criteria.exprType">
                    <_op/>
                    <_min/>
                    <_max/>
                    <_likeRule/>
                    <_dateRule/>
                    <_pattern/>
                    <_year/>
                    <_quarter/>
                    <_month/>
                    <_opProperty/>
                    <_ref/>
                    <_processNullValue/>
                    <CUSTNAME __type="java:java.lang.String">cust_1</CUSTNAME>
                </__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>
        <template __id="2" __type="sdo:com.primeton.eos.foundation.example.data.CUST">
            <CUSTID __type="java:java.lang.Integer">1</CUSTID>
            <CUSTCODE/>
            <CUSTNAME __type="java:java.lang.String">cust_1</CUSTNAME>
            <BIRTH/>
            <SEX/>
            <ADDRESS/>
            <PHOTO/>
        </template>
    </__root>
</bizContext>