code: public M keep(String... attrs) {
  		if (attrs != null && attrs.length > 0) {
  			Config config = _getConfig();
  			if (config == null) {	// 支持无数据库连接场景
  				config = DbKit.brokenConfig;
  			}
  			Map<String, Object> newAttrs = config.containerFactory.getAttrsMap();	// new HashMap<String, Object>(attrs.length);
  			Set<String> newModifyFlag = config.containerFactory.getModifyFlagSet();	// new HashSet<String>();
  			for (String a : attrs) {
  				if (this.attrs.containsKey(a))	// prevent put null value to the newColumns
  					newAttrs.put(a, this.attrs.get(a));
  				if (this._getModifyFlag().contains(a))
  					newModifyFlag.add(a);
  			}
  			this.attrs = newAttrs;
  			this.modifyFlag = newModifyFlag;
  		}
  		else {
  			this.attrs.clear();
  			this._getModifyFlag().clear();
  		}
  		return (M)this;
  	}
docs: Keep attributes of this model and remove other attributes.
  @param attrs the attribute names of the model
  @return this model