query过滤问题
雪兵兵 发布于3月前 2答/120阅

我的原始需求是:
GlobalEovaIntercept.java文件中的filterQuery方法中写如下

if (ec.object.getCode().startsWith("youhao")) {

return " and id in (select b_id from youhao_user where u_id=登陆的用户ID)";

}

登陆的用户ID,这里要怎么写?

写成:${user.id},老是出错。

实现过程中遇到的问题:
还有filterQuery和filterExp的区别是什么?能否详细介绍一下。


我觉得这个问题的原因是:




[沙发] 雪兵兵
return " and id in (select b_id from youhao_user where u_id=${user.id})";
写这样的话,会出错。
return " and id in (select b_id from youhao_user where u_id=1)";
这样就正常
[地板] Jieven
@雪兵兵 多看注释,多关注传参EovaContext ec 内有乾坤.
过滤查询数据

ac.ctrl 当前控制器
ac.user 当前用户
ac.menu 当前菜单
ac.object 当前元对象
ec.object.getFields() 当前元字段

全局拦截的亮点就是可以代码控制,一切靠手撸,不要再指望 表达式动态获取了,木有执行表达式解析.
请使出你20年的编码功力来完成.
提交评论
)