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;
}
JpaAnnotationParser.java 文件源码
java
阅读 25
收藏 0
点赞 0
评论 0
项目:hsweb-framework
作者:
评论列表
文章目录