NutzCN Logo
问答 遇到坑了,dao.query相关
发布于 3289天前 作者 qq_e7da0606 2177 次浏览 复制 上一个帖子 下一个帖子
标签: dao

先上代码:

	List<Long> pids = new ArrayList<>();
	...
	List<Section> sections = dao().query(Section.class, Cnd.where("id", "in", pids));

如上pids是空数组,省略号是对pids的一段业务处理。问题是pids是空的时候,这个sql条件就不成立,也就是会查询这个表的全部记录。
pids为空,按道理查询为空啊!难道还要我每次做个判断?

4 回复

你自己已经说了答案

晚点我找找具体是哪里判断的,让你知道是怎么掉进去的

我看了源码,生成表达式的时候:

	else if (Collection.class.isAssignableFrom(type)) {
                Object first = Lang.first(value);
                if (null == first)
                    return null;
                re = _evalRange((Mirror<?>) Mirror.me(first), name, value);
            }

因为是集合,然后没值,返回为null,这样就...
设计本该如此吗?如果集合为的length为0,是否直接条件为false比较好了,这样查不到记录才符合啊!

添加回复
请先登陆
回到顶部