/** * 从类定义中解析表定义<br> * 仅解析传入类型:不对传入类型的接口,以及父类进行注解获取<br> * <功能详细描述> * * @param type * @return [参数说明] * @return JPAEntityTableDef [返回类型说明] * @exception throws [异常类型] [异常说明] * @see [类、类#方法、类#成员] */ private static JPAEntityTableDef doAnalyzeTableDef(Class<?> type) { // 没有注解的时候默认使用类名当作表名 String tableName = type.getSimpleName(); String comment = ""; // 如果存在javax注解中的Entity读取其Name // org.hibernate.annotations.Entity该类中不含有表名,不进行解析 if (type.isAnnotationPresent(Entity.class)) { String entityName = type.getAnnotation(Entity.class).name(); if (!StringUtils.isEmpty(entityName)) { tableName = entityName.toUpperCase(); } } if (type.isAnnotationPresent(Table.class)) { // 如果含有注解:javax.persistence.Table String annoTableName = type.getAnnotation(Table.class).name(); if (!StringUtils.isEmpty(annoTableName)) { tableName = annoTableName.toUpperCase(); } } if (type.isAnnotationPresent(org.hibernate.annotations.Table.class)) { // 如果含有注解:javax.persistence.Table String annoTableComment = type.getAnnotation(org.hibernate.annotations.Table.class).comment(); if (!StringUtils.isEmpty(annoTableComment)) { comment = annoTableComment; } } JPAEntityTableDef tableDef = new JPAEntityTableDef(); tableDef.setTableName(tableName); tableDef.setComment(comment); return tableDef; }
/** * 解析类或接口生成对应的表定义详情(含字段以及索引)<br> * <功能详细描述> * * @param type * @return [参数说明] * @return JPAEntityTableDef [返回类型说明] * @exception throws [异常类型] [异常说明] * @see [类、类#方法、类#成员] */ private static JPAEntityTableDef doAnalyzeToTableDefDetail(Class<?> type) { JPAEntityTableDef tableDef = doAnalyzeTableDef(type); // 解析表定义 List<JPAEntityColumnDef> columnDefs = doAnalyzeCoumnDefs(tableDef.getTableName(), type); // 解析字段集合 tableDef.setColumns(columnDefs); return tableDef; }