package org.nutz.dao.impl.sql.pojo; import java.util.List; import org.nutz.dao.entity.Entity; import org.nutz.dao.entity.MappingField; import org.nutz.dao.util.Pojos; public class UpdateFieldsPItem extends InsertValuesPItem { /** * 参考对象,根据这个对象来决定是否忽略空值 */ private Object refer; public UpdateFieldsPItem(Object refer) { this.refer = refer; } protected List<MappingField> _mfs(Entity<?> en) { if (null == mfs) return Pojos.getFieldsForUpdate(_en(en), getFieldMatcher(), refer == null ? pojo.getOperatingObject() : refer); return mfs; } public void joinSql(Entity<?> en, StringBuilder sb) { List<MappingField> mfs = _mfs(en); sb.append(" SET "); for (MappingField mf : mfs) sb.append(mf.getColumnName()).append("=?,"); sb.setCharAt(sb.length() - 1, ' '); } }