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.