JpaAnnotationParser.java 文件源码

java
阅读 25 收藏 0 点赞 0 评论 0

项目:hsweb-framework 作者:
public static RDBTableMetaData parseMetaDataFromEntity(Class entityClass) {
    Table table = AnnotationUtils.findAnnotation(entityClass, Table.class);
    if (table == null) {
        return null;
    }
    RDBTableMetaData tableMetaData = new RDBTableMetaData();
    tableMetaData.setName(table.name());

    PropertyDescriptor[] descriptors = BeanUtilsBean.getInstance()
            .getPropertyUtils()
            .getPropertyDescriptors(entityClass);
    for (PropertyDescriptor descriptor : descriptors) {
        Column column = getAnnotation(entityClass, descriptor, Column.class);
        if (column == null) {
            continue;
        }
        RDBColumnMetaData columnMetaData = new RDBColumnMetaData();
        columnMetaData.setName(column.name());
        columnMetaData.setAlias(descriptor.getName());
        columnMetaData.setLength(column.length());
        columnMetaData.setPrecision(column.precision());
        columnMetaData.setJavaType(descriptor.getPropertyType());
        JDBCType type = jdbcTypeMapping.get(descriptor.getPropertyType());
        if (type == null) {
            type = jdbcTypeConvert.stream()
                    .map(func -> func.apply(entityClass, descriptor))
                    .filter(Objects::nonNull)
                    .findFirst()
                    .orElse(JDBCType.OTHER);
        }
        columnMetaData.setJdbcType(type);
        tableMetaData.addColumn(columnMetaData);
    }
    return tableMetaData;
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号