NutzCN Logo
问答 怎么拷贝Cnd里的where条件啊?
发布于 2730天前 作者 qq_8d0eba76 1837 次浏览 复制 上一个帖子 下一个帖子
标签:
    public static void main(String[] args) {

        Cnd cnd1 = Cnd.NEW();
        cnd1.and("f1", "=", 111);
        System.out.println(cnd1.toString());

        Cnd cnd2 = Cnd.NEW();
        cnd2.where().and(cnd1.where());
        System.out.println(cnd1.toString());

    }

输出结果是

 WHERE f1=111
(f1=111)

但是我期望能输出

 WHERE f1=111
 WHERE f1=111

有办法吗?

10 回复
Cnd cnd2 = Cnd.where(cnd1.where().setTop(false));

来自炫酷的 NutzCN

能解释一下吗?
cnd2.where().and(cnd1.where()); 为什么对cnd1会有影响 ?

而后面我又把cnd1设置到了 $condition ,所以sql没了where字符串, 然后就报错喽 . 这完全预期不到啊, .
算是nutz的bug呢, 还是因为我没按照文档的说明来用呢 .

那是共享的,并非拷贝

来自炫酷的 NutzCN

真心觉得这是个坑, 如果不打算后续版本支持cnd拷贝的话 , 最好能在文档上有说明 .
我也不是第一个碰到这个坑的 . https://nutz.cn/yvr/t/09r1hqrq1mib0ouhsvf2ob2cku

有个不是办法的办法, Cnd是可以序列化的.

~~本来是想序列化的 , 但是review的时候 . ~~

~~同事很可能会说 , 咱们还是把Nutz引用去掉吧, 指不定哪天又来个坑 . 到时候我都不知道怎么跟他讲道理.~~

兽兽叔 威武

就没一点自信?

来自炫酷的 NutzCN

好的

    private static PItem copy(PItem where) {
        byte[] outwhere = SerializationUtils.serialize(where);
        PItem pItem = SerializationUtils.deserialize(outwhere);
        return pItem;
    }
添加回复
请先登陆
回到顶部