NutzCN Logo
问答 自定义sql如何在底层添加固定where条件?
发布于 2535天前 作者 qq_4f7a40b4 2069 次浏览 复制 上一个帖子 下一个帖子
标签:

底层封装了一个业务处理类,在调用dao.query(key,cnd)方法之前想要强制给cnd拼接条件andEquals("userId",useri=Id).因为涉及到查询语句给表名重命名或子查询的问题。如果能准确的将查询条件添加到主表?


// 类似实现以下代码的效果 public <T> PageResult<T> queryPage(Class<T> cls, BaseEntity entity, SimpleCriteria cnd) { cnd.where().andEquals("enterprise_id", ClientInfo.getEnterpriseId()); return super.queryPage(cls, entity, cnd); } //--以下的todo如何做??? public <T> List<T> query(String key, Class<T> cls) { // TODO 处理cnd,加上企业id return super.query(key, cls); }
5 回复

做个MyCnd类吧,要求创建类似条件的代码,走MyCnd.where

有没有参考代码?

思路不明白?

不是很清晰,有一种思路就是在每个自定义sql文件中添加这个userId参数,然后在底层处理这个参数赋值,但是这种不能一劳永逸,而且需要定期跑程序检测团队中的所有人是不是都按要求这么写。对于MyCnd没有特别清晰的想法

额,一劳永逸的办法貌似没有

还有个思路就是继承NutSql, 也就是自定义SQL的实现类, 通过Sqls.setBoring可以自定义实现类

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