|
本帖最后由 szhtest 于 2024-8-24 17:09 编辑
我的门户页面有一个查询按钮,点击调用该Getemployee脚本传参给视图的SQL。查询按钮的click有写this.Getemployee()调用脚本,门户页面预加载也有配置这个脚本
返回fileterList拼接到视图的sql 查询语句后
现在fileterList若为空(控件中均不填写任何值就点击查询),执行出来的查询数据是没问题的,但一旦我填写了值,传送了过滤条件就报错了
前端打印的fileterList及视图SQL打印的this.par我看了看好像并没有发现什么问题?但是我不明白,为何在视图语句里print(this.fileterList)是undefined,print(this.par)却有值(值正常)
20844的错误不用管(已解决),现在是报: (net.sf.jsqlparser.statement.select.SubSelect and net.sf.jsqlparser.schema.Table are in unnamed module of loader 'app'), exception:java.lang.ClassCastException, id:854eef8a-beef-4a3e-ac22-e8da6bedc279, name:com.x.query.assemble.surface.jaxrs.statement.StatementAction, message:class net.sf.jsqlparser.statement.select.SubSelect cannot be cast to class net.sf.jsqlparser.schema.Table (net.sf.jsqlparser.statement.select.SubSelect and net.sf.jsqlparser.schema.Table are in unnamed module of loader 'app')
日志管理器显示我的print(SQL)是没有拼接过的(就还是我var sql的原始语句)?为何日志管理器会给我报这个错?
视图里的SQL没有包括最后一句where,只写到 as a
查了下报错说是ClassCastException 异常。系统尝试将一个 net.sf.jsqlparser.statement.select.SubSelect 对象强制转换为 net.sf.jsqlparser.schema.Table 对象。而且如果我不传过滤条件的话,查询是成功的。只要传的fileterList不为空就报错了,我不理解是我写的哪里出了问题?
我不太理解我传过来的这个fileterList是自动接到原有的SQL后面的吗?是在return SQL后面给我拼接上了fileterList转化的语句导致了报错吗?
我这个this.par是怎么获取到的?看起来是从我传递过来的fileterList拿的值啊,this.par.公司 = '%检测%'没错
是我哪里写的有问题导致视图一旦自动拼接上fileterList就发生报错?我如果只传view.Setfileter(fileterList(等于一个空数组),par),然后视图SQL里自行用par拼接出筛选语句是不会报错的
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|