# 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开始提供。

# 【引用路径】

  1. 本运算逻辑构件对应JAVA方法路径: com.eos.foundation.database.CriteriaUtil.appendExpr,包含在com.eos.foundation.jar中。
  2. 运算逻辑定义在构件包com.eos.foundation中。

# 【使用说明】

  1. 参数说明
类型 名称 数据类型 参数描述
参数 criteria DataObject 查询条件实体查询条件
参数 path String 查询表达式所在路径
参数 exprValue String... 字符串变参,查询条件值(必须成对设置)
  1. 抛出异常说明 无。

  2. 规则说明 关于查询条件实体的说明请参考《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开始提供。

# 【引用路径】

  1. 本运算逻辑构件对应JAVA方法路径: com.eos.foundation.database.CriteriaUtil.appendSelectField,包含在com.eos.foundation.jar中。
  2. 运算逻辑定义在构件包com.eos.foundation中。

# 【使用说明】

  1. 参数说明
类型 名称 数据类型 参数描述
参数 type String 查询select的字段操作类型:
  • select - 指定查询字段
  • count - 需要统计记录数的字段
  • avg - 需要求平均值的字段
  • sum - 需要求和的字段
  • min - 需求取最小值的字段
  • max - 需求取最大值的字段
  • 参数 criteria DataObject 查询条件实体查询条件
    参数 fields String... 需要查询的实体的字段名
    1. 抛出异常说明 无。

    2. 规则说明 关于查询条件实体的说明请参考《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开始提供。

    # 【引用路径】

    1. 本运算逻辑构件对应JAVA方法路径: com.eos.foundation.database.CriteriaUtil.removeAllSelectField,包含在com.eos.foundation.jar中。
    2. 运算逻辑定义在构件包com.eos.foundation中。

    # 【使用说明】

    1. 参数说明
    类型 名称 数据类型 参数描述
    参数 type String 查询select的字段操作类型:
  • select - 指定查询字段
  • count - 需要统计记录数的字段
  • avg - 需要求平均值的字段
  • sum - 需要求和的字段
  • min - 需求取最小值的字段
  • max - 需求取最大值的字段
  • 参数 criteria DataObject 查询条件实体查询条件
    1. 抛出异常说明 无。

    2. 规则说明 关于查询条件实体的说明请参考《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开始提供。

    # 【引用路径】

    1. 本运算逻辑构件对应JAVA方法路径: com.eos.foundation.database.CriteriaUtil.removeExpr,包含在com.eos.foundation.jar中。
    2. 运算逻辑定义在构件包com.eos.foundation中。

    # 【使用说明】

    1. 参数说明
    类型 名称 数据类型 参数描述
    参数 criteria DataObject 查询条件实体查询条件
    参数 path String 查询表达式所在路径
    参数 removeAll boolean 是否删除满足每个条件的所有_expr(false 只删除满足查询条件fileds中每个filed的第一个_expr)
    参数 fields String... 字符串变参,多个查询条件的字段名
    1. 抛出异常说明 无。
    2. 规则说明 关于查询条件实体的说明请参考《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开始提供。

    # 【引用路径】

    1. 本运算逻辑构件对应JAVA方法路径: com.eos.foundation.database.CriteriaUtil.removeSelectField,包含在com.eos.foundation.jar中。
    2. 运算逻辑定义在构件包com.eos.foundation中。

    # 【使用说明】

    1. 参数说明
    类型 名称 数据类型 参数描述
    参数 type String 查询select的字段操作类型:
  • select - 指定查询字段
  • count - 需要统计记录数的字段
  • avg - 需要求平均值的字段
  • sum - 需要求和的字段
  • min - 需求取最小值的字段
  • max - 需求取最大值的字段
  • 参数 criteria DataObject 查询条件实体查询条件
    参数 fields String... 需要查询的实体的字段名
    1. 抛出异常说明 无。

    2. 规则说明 关于查询条件实体的说明请参考《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开始提供。

    # 【引用路径】

    1. 本运算逻辑构件对应JAVA方法路径: com.eos.foundation.database.CriteriaUtil.translateCriteriaEntity2Criteria,包含在com.eos.foundation.jar中。
    2. 运算逻辑定义在构件包com.eos.foundation中。

    # 【使用说明】

    1. 参数说明
    类型 名称 数据类型 参数描述
    参数 dsName String 数据源名称
    参数 criteriaEntity DataObject 查询条件实体
    返回值 out0 IDASCriteria IDASCriteria查询条件
    1. 抛出异常说明 无。

    2. 规则说明 无。

    # 【参考案例】

    示例:将一个查询条件实体转换为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开始提供。

    # 【引用路径】

    1. 本运算逻辑构件对应JAVA方法路径: com.eos.foundation.database.CriteriaUtil.translateTemplate2Criteria,包含在com.eos.foundation.jar中。
    2. 运算逻辑定义在构件包com.eos.foundation中。

    # 【使用说明】

    1. 参数说明
    类型 名称 数据类型 参数描述
    参数 dsName String 数据源名称
    参数 template DataObject SDO数据模板查询条件
    返回值 out0 IDASCriteria IDASCriteria查询条件
    1. 抛出异常说明 无。

    2. 规则说明 无。

    # 【参考案例】

    示例:将一个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开始提供。

    # 【引用路径】

    1. 本运算逻辑构件对应JAVA方法路径: com.eos.foundation.database.CriteriaUtil.translateTemplate2CriteriaEntity,包含在com.eos.foundation.jar中。
    2. 运算逻辑定义在构件包com.eos.foundation中。

    # 【使用说明】

    1. 参数说明
    类型 名称 数据类型 参数描述
    参数 template DataObject SDO数据模板查询条件
    返回值 out0 DataObject 查询条件实体
    1. 抛出异常说明 转换失败抛出异常com.eos.system.exception.EOSRuntimeException。

    2. 规则说明 关于查询条件实体的说明请参考《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>
    
    上次更新: 2023/7/20下午12:25:28