private void initTableInfo()

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());
            }
        }
    }