use of com.baidu.unbiz.common.genericdao.annotation.Table in project disconf by knightliao.
the class MappingItem method getMappingItems.
public static List<MappingItem> getMappingItems(Class<?> clazz) {
if (!ClassUtils.isBaiduClass(clazz)) {
return new ArrayList<MappingItem>(0);
}
// 如果不是BaseObject的子類,則一定是keyClass
boolean isKeyClass = !BaseObject.class.isAssignableFrom(clazz);
List<MappingItem> mappingItems = new ArrayList<MappingItem>(32);
Set<Field> fields = ClassUtils.getAllFiled(clazz);
Set<Method> methods = ClassUtils.getAllMethod(clazz);
Map<String, Method> methodMap = ClassUtils.filter2Map(methods);
Table table = isKeyClass ? null : clazz.getAnnotation(Table.class);
String keyColumn = isKeyClass ? null : table.keyColumn();
// 循环处理所有字段,过滤出该类加载为对象时需要调用的setter方法map
for (Field f : fields) {
// 静态字段则自动pass
if (Modifier.isStatic(f.getModifiers())) {
continue;
}
// 不做关联加载的工作
Class<?> fType = f.getType();
boolean isBaiduClass = ClassUtils.isBaiduClass(fType);
if (isBaiduClass || Collection.class.isAssignableFrom(fType) || fType.isArray()) {
continue;
}
// 字段名字
String name = f.getName().toLowerCase();
boolean isKey = name.equals("id");
if (isKey && isBaiduClass) {
continue;
}
// 其他字段获取field,getter,setter
Method set = methodMap.get("set" + name);
Method get = methodMap.get("get" + name);
if (get == null) {
get = methodMap.get("is" + name);
}
// FIXME
MappingItem item = new MappingItem(f, set, get, (table != null) ? table.columnStyle() : ColumnStyle.LOWER_CASE, (table != null) ? table.columnsModified() : false);
if (item.isIgnore()) {
continue;
}
item.dbColumn = isKey ? keyColumn : item.dbColumn;
mappingItems.add(item);
}
return mappingItems;
}
use of com.baidu.unbiz.common.genericdao.annotation.Table in project disconf by knightliao.
the class ORMapping method initMapping.
private void initMapping() {
Table table = entityClass.getAnnotation(Table.class);
this.sKeyColumn = table.keyColumn();
this.keyColumn.addAll(Arrays.asList(sKeyColumn.split(",")));
// 此处增加处理以便零注解
this.table = (table.name().equals("")) ? table.columnStyle().convert(entityClass.getSimpleName()) : table.name();
this.table = (StringUtils.isNotBlank(table.db())) ? table.db() + "." + this.table : this.table;
this.shardCount = table.shardCount();
List<MappingItem> mappingItems = MappingItem.getMappingItems(entityClass);
List<MappingItem> keyMappings = MappingItem.getMappingItems(keyClass);
mappingItems.addAll(keyMappings);
for (MappingItem item : mappingItems) {
if (item.getDbColumn().indexOf(',') >= 0) {
continue;
}
columnMethodMap.put(item.getDbColumn(), item);
if (item.isModifiable()) {
modifiableColumns.add(item.getDbColumn());
}
}
allColumns.addAll(columnMethodMap.keySet());
}
Aggregations