Package org.nutz.dao.impl.link

Source Code of org.nutz.dao.impl.link.DoUpdateLinkVisitor

package org.nutz.dao.impl.link;

import java.util.Map;

import org.nutz.dao.FieldFilter;
import org.nutz.dao.FieldMatcher;
import org.nutz.dao.entity.LinkField;
import org.nutz.dao.impl.AbstractLinkVisitor;
import org.nutz.lang.Lang;

public class DoUpdateLinkVisitor extends AbstractLinkVisitor {

    public void visit(Object obj, final LinkField lnk) {
        Object value = lnk.getValue(obj);
        if (Lang.length(value) == 0)
            return;
        if (value instanceof Map<?, ?>)
            value = ((Map<?, ?>) value).values();

        FieldMatcher fm = FieldFilter.get(lnk.getLinkedEntity().getType());

        // 如果需要忽略 Null 字段,则为每个 POJO 都生成一条语句
        if (null != fm && fm.isIgnoreNull()) {
            opt.addUpdateForIgnoreNull(lnk.getLinkedEntity(), value, fm);
        }
        // 否则生成一条批处理语句
        else {
            opt.addUpdate(lnk.getLinkedEntity(), value);
        }

    }

}
TOP

Related Classes of org.nutz.dao.impl.link.DoUpdateLinkVisitor

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.