in bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/TableMetaData.java [105:133]
private void initTableInfo(Class<?> clazz) {
tableName = clazz.isAnnotationPresent(Table.class)
? clazz.getAnnotation(Table.class).name()
: CaseUtils.toUnderScoreCase(clazz.getSimpleName());
// Get parents' fields
List<Field> fields = ClassUtils.getFields(clazz);
for (Field field : fields) {
if (Modifier.isStatic(field.getModifiers())
|| field.isAnnotationPresent(Transient.class)
|| !BeanUtils.isSimpleValueType(field.getType())) {
continue;
}
String property = field.getName();
Column column = field.getAnnotation(Column.class);
String columnName = column != null ? column.name() : CaseUtils.toUnderScoreCase(property);
if (field.isAnnotationPresent(Id.class) || (property.equalsIgnoreCase("id") && pkProperty == null)) {
pkProperty = property;
pkColumn = columnName;
}
PropertyDescriptor descriptor = BeanUtils.getPropertyDescriptor(clazz, property);
if (descriptor != null && descriptor.getReadMethod() != null && descriptor.getWriteMethod() != null) {
fieldColumnMap.put(property, columnName);
fieldTypeMap.put(property, field.getType());
}
}
}