ImmutableForeignKeyColumn(ImmutableForeignKey parent, Map<String, Object> fkc) { super(parent, requireKeys(fkc, ForeignKeyColumn.FOREIGN_COLUMN_NAME, ForeignKeyColumn.FOREIGN_TABLE_NAME)); final ForeignKeyColumn prototype = new ForeignKeyColumnImpl(parent, fkc); this.id = prototype.getId(); this.name = prototype.getName(); this.ordinalPosition = prototype.getOrdinalPosition(); this.foreignTableName = prototype.getForeignTableName(); this.foreignColumnName = prototype.getForeignColumnName(); this.foreignTable = LazyReference.create(); this.foreignColumn = LazyReference.create(); this.column = LazyReference.create(); }