condition参数与query参数的混淆
在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对象