NutzCN Logo
问答 使用Cnd或Criteria,where关键字的问题
发布于 2577天前 作者 ericleung 3881 次浏览 复制 上一个帖子 下一个帖子
标签:

兽总早上好啊。。。。

Cnd或Criteria可以使用 AND去连接 拼接吗?,而不是用where
因为SQL语句中的固定条件,我想直接使用变量如(name = @userName),一些动态的,我想使用Criteria放到后面。

例如这样

select * from users where name like @userName $condition

如果说将userName 也放到 $condition中,也可以解决,但是我觉得代码可读性大大降低了

又或者说将$condition放到前面来
例如这样

select * from users where  $condition AND name like @userName

万一$condition为空呢?也有问题

回到问题点,如果Cnd或Criteria可以使用 AND去连接就好了~

目前 有办法吗?

3 回复

$condition为空就拼一个永真条件,比如 1=1 这样

强迫证,表示接受不了 :-(

我这样子解决了。。看看兽总有没有更好的建议

Criteria criteria = Cnd.cri();
            criteria.where().setTop(false);

            if(StringUtils.isNotBlank(woc)){
                criteria.where().and("a.woc", "LIKE", woc+"%");
            }

            if(StringUtils.isNotBlank(gr.getQtyOperator())){
                criteria.where().and("a.qty", gr.getQtyOperator(), gr.getQty());
            }

            if (!criteria.where().isEmpty()) {
                sql2.vars().set("cnd", "AND "+criteria.toSql(null));
            }
添加回复
请先登陆
回到顶部