condition参数与query参数的混淆

最后更新:2023-10-18 19:52:17 | 状态:未完成

在controller中查询数据时经常会用到:

String status = "FINAL";

service.query("CRM_USER", condition(true, "TYPE_CODE:type"), "DATA_STATUS:"+status);

实际执行的是

service.query("CRM_USER", condition(true, "TYPE_CODE:type"), "DATA_STATUS:FINAL");
这里的type指的是从request中提交了一个type参数,格式一般是这样 http://localhost/usr/l?type=A
condition()方法中会从request中提取type的值,如request.getParameter("type"); 并封装成ConfigStore返回给query方法
最终会生成SQL: WHERE TYPE_CODE = 'A'

"DATA_STATUS:"+status 或 "DATA_STATUS:FINAL" 中的FINAL是一个最终的值,而不是key, 不会从request中取值
最终会生成SQL: WHERE DATA_STATUS = 'FINAL'

所以一定不要混淆
"DATA_STATUS:FINAL" 是AnylineService类的query方法的参数,FINAL是值

"TYPE_CODE:type"是AnylineController类的condition()方法的参数,type是参数名

AnylineController是有web来环境的 所以可以从request中取值,而AnylineService没有web来表示所以也没有request对象

最近更新 搜索 提交