public static Table getTableById(String id, ClassLoader loader) { return getTableProcessor(loader).getTableById(id); }
/** * 获取外键 * * @param table * @param packageName * @param foreignReferences 需要更新的外键对象 * @return */ public List<String> getForeignKeySqls(Table table, String packageName, List<ForeignReference> foreignReferences) { List<String> foreignSqls = new ArrayList<String>(); if (!CollectionUtil.isEmpty(foreignReferences)) { for (ForeignReference foreignReference : foreignReferences) { Table foreignTable = tableProcessor .getTableById(foreignReference.getMainTable()); String sql = getOneFkSql(table, foreignTable, foreignReference); foreignSqls.add(sql); } } return foreignSqls; }
private int indexOfTableReference(List<ForeignReference> foreignRefs, Table table, Map<String, String> dbForeignMap) { for (int i = 0; i < foreignRefs.size(); i++) { ForeignReference fr = foreignRefs.get(i); Table foreignTable = tableProcessor .getTableById(fr.getMainTable()); //被关联的标准字段名 String stdRefFieldName = getFieldStdFieldName(fr.getReferenceField(), foreignTable); //外键的标准字段名 String stdForeignField = getFieldStdFieldName(fr.getForeignField(), table); String constraintName = dbForeignMap.get("CONSTRAINT_NAME"); String columnName = dbForeignMap.get("COLUMN_NAME"); String referenceTableName = dbForeignMap.get("REFERENCED_TABLE_NAME"); String referenceColumnName = dbForeignMap.get("REFERENCED_COLUMN_NAME"); if (stdRefFieldName.equalsIgnoreCase(referenceColumnName) && fr.getName().equalsIgnoreCase(constraintName) && foreignTable.getNameWithOutSchema().equalsIgnoreCase(referenceTableName) && stdForeignField.equalsIgnoreCase(columnName)) { return i; } } return -1; }