use of org.nutz.dao.entity.Entity in project nutz by nutzam.
the class ExtDaoInvocationHandler method filterFields.
@SuppressWarnings({ "unchecked", "rawtypes" })
public static boolean filterFields(Object obj, FieldMatcher matcher, Dao dao, Callback2<MappingField, Object> callback) {
if (obj == null)
return false;
obj = Lang.first(obj);
if (obj == null) {
return false;
}
if (obj.getClass() == Class.class) {
throw Lang.impossible();
}
if (obj instanceof String || obj instanceof Number || obj instanceof Boolean) {
throw Lang.impossible();
}
Entity en = dao.getEntity(obj.getClass());
if (en == null) {
throw Lang.impossible();
}
List<MappingField> mfs = new ArrayList<MappingField>(en.getMappingFields());
if (matcher != null) {
Iterator<MappingField> it = mfs.iterator();
while (it.hasNext()) {
MappingField mf = it.next();
if (!matcher.match(mf.getName()))
it.remove();
}
}
boolean flag = false;
for (MappingField mf : mfs) {
if (matcher == null) {
Object val = mf.getValue(obj);
callback.invoke(mf, val);
flag = true;
continue;
}
if (matcher.isIgnoreId() && mf.isId())
continue;
if (matcher.isIgnoreName() && mf.isName())
continue;
if (matcher.isIgnorePk() && mf.isCompositePk())
continue;
Object val = mf.getValue(obj);
if (val == null) {
if (matcher.isIgnoreNull())
continue;
} else {
if (matcher.isIgnoreZero() && val instanceof Number && ((Number) val).doubleValue() == 0.0) {
continue;
}
if (matcher.isIgnoreDate() && val instanceof Date) {
continue;
}
if (matcher.isIgnoreBlankStr() && val instanceof String) {
}
}
callback.invoke(mf, val);
flag = true;
}
return flag;
}
use of org.nutz.dao.entity.Entity in project nutz by nutzam.
the class ExtDaoInvocationHandler method checkTableColumn.
/**
* 检查分表中是否有字段变化 提示
*
* @param dao
* Dao实例
* @param tableName
* 动态表名上下文
* @param clsType
* 映射Pojo
*/
public static void checkTableColumn(Dao dao, Object tableName, final Class<?> clsType) {
final NutDao d = (NutDao) dao;
final JdbcExpert expert = d.getJdbcExpert();
ext(d, tableName).run(new ConnCallback() {
public void invoke(Connection conn) throws Exception {
Entity<?> en = d.getEntity(clsType);
expert.setupEntityField(conn, en);
}
});
}
Aggregations