NutzCN Logo
问答 NutDao deleteWith() 需要先fetchLinks,才能使用么?
发布于 2428天前 作者 qq_db31da41 1788 次浏览 复制 上一个帖子 下一个帖子
标签:

我现在直接调用 deleteWith(obj,regex) 传入对象和需要删除@Many 字段的正则,发现没有进行关联删除。

2018-03-27 16:10:23.199 [wscity] [http-nio-8080-exec-9] INFO  o.n.d.impl.link.DoDeleteLinkVisitor [lineNo: 110] - Value of LinkField(@MANY-->TbUser.id) is null or isEmtry, ingore

是必须先调用fetchLinks(obj,regex)之后,再调用deleteWith(obj,regex) 才能进行关联删除么?

4 回复

还有clearXxx哦

大神不对呀,fetchLinks之后 ,deleteWith还是不起作用呀

fetchLinks 后 obj 里面有@Many 的对象,
但是deleteWith 源码里面

  public int deleteWith(Object obj, final String regex) {
        if (null == obj)
            return 0;
        final int[] re = new int[1];
        Lang.each(obj, false, new Each<Object>() {
            public void invoke(int index, Object ele, int length) throws ExitLoop, ContinueLoop,
                    LoopException {
                EntityOperator opt = _optBy(ele);
                if (null == opt)
                    return;
                opt.entity.visitMany(ele, regex, doDelete(opt));
                opt.entity.visitManyMany(ele, regex, doClearRelationByLinkedField(opt));
                opt.entity.visitManyMany(ele, regex, doDelete(opt));
                opt.addDeleteSelfOnly();
                opt.entity.visitOne(ele, regex, doDelete(opt));

                re[0] += opt.exec().getUpdateCount();
            }
        });
        return re[0];

走到re[0] += opt.exec().getUpdateCount(); 时候,看到ele对象 里面 @Many的对象依然为空

不好意思,代码可能写错了,,,我重新试试

解决了,刚刚敲错了(@_@;)

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