public static Cnd from(Dao dao, Object obj, FieldMatcher matcher) {
        final SqlExpressionGroup exps = new SqlExpressionGroup();
        boolean re = Daos.filterFields(obj, matcher, dao, new Callback2<MappingField, Object>() {
            public void invoke(MappingField mf, Object val) {
                exps.and(mf.getName(), "=", val);
            }
        });
        if (re)
            return Cnd.where(exps);
        return null;
    }
public static Cnd from(Dao dao, Object obj, FieldMatcher matcher) {
        final SqlExpressionGroup exps = new SqlExpressionGroup();
        boolean re = Daos.filterFields(obj, matcher, dao, new Callback2<MappingField, Object>() {
            public void invoke(MappingField mf, Object val) {
                exps.and(mf.getName(), "=", val);
            }
        });
        if (re)
            return Cnd.where(exps);
        return null;
    }
public static Cnd from ( Dao dao , Object obj , FieldMatcher matcher ) { final SqlExpressionGroup exps = new SqlExpressionGroup ( ) ; boolean re = Daos . filterFields ( obj , matcher , dao , new Callback2 < MappingField , Object > ( ) { public void invoke ( MappingField mf , Object val ) { exps . and ( mf . getName ( ) , "=" , val ) ; } } ) ; if ( re ) return Cnd . where ( exps ) ; return null ; }
根据一个对象生成Cnd条件, FieldMatcher详细控制.<p/>
<code>assertEquals(" WHERE name='wendal' AND age=0", Cnd.from(dao, pet, FieldMatcher.make("age|name", null, true).setIgnoreDate(true)).toString());</code>
@param dao Dao实例
@param obj 基对象,不可以是Class,字符串,数值和Boolean
@param matcher 过滤字段属性, 可配置哪些字段可用/不可用/是否忽略空值/是否忽略0值/是否忽略java.util.Date类及其子类的对象/是否忽略@Id所标注的主键属性/是否忽略 \@Name 所标注的主键属性/是否忽略 \@Pk 所引用的复合主键
@return Cnd条件
根据一个对象生成Cnd条件 FieldMatcher详细控制 . <p / > <code > assertEquals ( WHERE name = wendal AND age = 0 Cnd . from ( dao pet FieldMatcher . make ( age|name null true ) . setIgnoreDate ( true )) . toString () ) ; < / code >