protected Table setupSql2EntityRelatedTable( String entityName, DfCustomizeEntityInfo entityInfo, Map<String, DfColumnMeta> metaMap, String columnName, Column column, String pkRelatedTableName) { final DfColumnMeta columnMeta = metaMap.get(columnName); final String sql2EntityRelatedTableName = columnMeta.getSql2EntityRelatedTableName(); Table relatedTable = getRelatedTable(sql2EntityRelatedTableName); // first attack if (relatedTable == null) { if (pkRelatedTableName != null) { // second attack using PK-related relatedTable = getRelatedTable(pkRelatedTableName); if (relatedTable == null) { throwTableRelatedPrimaryKeyNotFoundException( entityName, entityInfo, pkRelatedTableName, columnName); } } else { return null; } } else { if (pkRelatedTableName != null) { if (!Srl.equalsFlexible(sql2EntityRelatedTableName, pkRelatedTableName)) { throwTableRelatedPrimaryKeyDifferentException( entityName, entityInfo, sql2EntityRelatedTableName, pkRelatedTableName, columnName); } } } column.setSql2EntityRelatedTable(relatedTable); return relatedTable; }