类 QuerySpec
java.lang.Object
com.midi.his.sdk.query.QuerySpec
查询条件载体,翻译为报文
MsgInfo 下的 query、order、distinct 节点。
用法(链式,默认条件之间用 AND 连接):
QuerySpec spec = QuerySpec.create()
.eq("INVALID_FLAG", "0")
.like("DEPT_NAME", "耳科")
.notNull("WARD_INDEX_NO")
.or("DEPT_CODE", CompareOp.EQ, "10130102")
.orderBy("UPDATE_DATETIME", SortOrder.DESC)
.pageSize(200);
注入防护:字段名只允许字母、数字与下划线,比较符只能取自 CompareOp;
字符串值一律用单引号包裹并把内部单引号翻倍转义。需要原样下发的表达式(数值、日期函数)请显式使用
number(java.lang.String, com.midi.his.sdk.query.CompareOp, java.lang.String) 或 raw(java.lang.String, com.midi.his.sdk.query.CompareOp, java.lang.String, java.lang.String)。
本类按调用创建、可变,不是线程安全的;不要在多线程间共享同一个实例。
-
方法概要
修饰符和类型方法说明static QuerySpeccreate()booleandistinct()distinct(boolean distinct) 是否要求平台去重。item = 'value'。item >= 'value'。item > 'value',字符串比较。booleanisEmpty()item is null。item <= 'value'。item like '%value%',自动补前后通配符。item < 'value'。item != 'value'。item is not null,对应样例中的compy=" is " value=" not null "。数值比较,值不加引号原样下发。static QuerySpec从已登记的字段名批量构造:仅等值条件。追加排序,可多次调用形成多级排序。orders()用OR追加一个等值条件。用OR追加一个LIKE条件。pageSize(int dataAmount) 覆盖本次请求的单页行数。queryWhere(String queryWhere) 直接指定MsgInfo/Msg里的自由查询条件文本,例如and pat_id='1' and card_id='3303'。完全自控的条件,值原样写入value属性。triggerPaging(int triggerData) 开启平台分页:结果行数超过该阈值时平台会分多次返回。
-
方法详细资料
-
create
- 返回:
- 空条件集,等价于不加
where过滤
-
of
从已登记的字段名批量构造:仅等值条件。- 参数:
item- 报文字段名value- 字符串值- 返回:
- 新实例
-
eq
item = 'value'。 -
ne
item != 'value'。 -
gt
item > 'value',字符串比较。 -
ge
item >= 'value'。 -
lt
item < 'value'。 -
le
item <= 'value'。 -
like
item like '%value%',自动补前后通配符。- 参数:
item- 字段名value- 关键词,内部单引号会被转义- 返回:
- 自身
-
isNull
item is null。 -
notNull
item is not null,对应样例中的compy=" is " value=" not null "。 -
number
数值比较,值不加引号原样下发。- 参数:
item- 字段名op- 比较符number- 数值的字符串形态,必须是合法十进制数- 返回:
- 自身
-
raw
完全自控的条件,值原样写入value属性。- 参数:
item- 字段名op- 比较符value- 原样下发的值splice-AND或OR- 返回:
- 自身
-
orEq
用OR追加一个等值条件。- 参数:
item- 字段名value- 字符串值- 返回:
- 自身
-
orLike
用OR追加一个LIKE条件。- 参数:
item- 字段名value- 关键词- 返回:
- 自身
-
orderBy
追加排序,可多次调用形成多级排序。- 参数:
item- 字段名order- 升降序- 返回:
- 自身
-
pageSize
覆盖本次请求的单页行数。- 参数:
dataAmount- 正整数- 返回:
- 自身
-
triggerPaging
开启平台分页:结果行数超过该阈值时平台会分多次返回。同步 WebService 无法按页码回取后续结果,SDK 会在
totalPage > 1时告警, 建议改用业务条件(例如按UPDATE_DATETIME分段)拉取。- 参数:
triggerData- 触发分页的行数阈值- 返回:
- 自身
-
queryWhere
直接指定MsgInfo/Msg里的自由查询条件文本,例如and pat_id='1' and card_id='3303'。- 参数:
queryWhere- 条件片段,由调用方负责正确性- 返回:
- 自身
-
distinct
是否要求平台去重。定义书提示开启去重会显著降低查询效率。- 参数:
distinct-true开启- 返回:
- 自身
-
conditions
- 返回:
- 条件列表,只读视图
-
orders
- 返回:
- 排序列表,每项为
[字段名, asc|desc]
-
queryWhere
- 返回:
- 自由条件文本,未设置时
null
-
distinct
public boolean distinct()- 返回:
- 是否去重
-
dataAmount
- 返回:
- 本次请求的行数上限覆盖值,未设置时
null
-
triggerData
- 返回:
- 分页阈值覆盖值,未设置时
null
-
isEmpty
public boolean isEmpty()- 返回:
- 是否没有任何过滤条件
-