private void processUniqueConstraintHolders(MetadataBuildingContext buildingContext) { if ( uniqueConstraintHoldersByTable == null ) { return; } for ( Map.Entry<Table, List<UniqueConstraintHolder>> tableListEntry : uniqueConstraintHoldersByTable.entrySet() ) { final Table table = tableListEntry.getKey(); final List<UniqueConstraintHolder> uniqueConstraints = tableListEntry.getValue(); for ( UniqueConstraintHolder holder : uniqueConstraints ) { buildUniqueKeyFromColumnNames( table, holder.getName(), holder.getColumns(), buildingContext ); } } uniqueConstraintHoldersByTable.clear(); }
private void processJPAIndexHolders(MetadataBuildingContext buildingContext) { if ( jpaIndexHoldersByTable == null ) { return; } for ( Table table : jpaIndexHoldersByTable.keySet() ) { final List<JPAIndexHolder> jpaIndexHolders = jpaIndexHoldersByTable.get( table ); for ( JPAIndexHolder holder : jpaIndexHolders ) { buildUniqueKeyFromColumnNames( table, holder.getName(), holder.getColumns(), holder.getOrdering(), holder.isUnique(), buildingContext ); } } }
private void buildUniqueKeyFromColumnNames( final Table table, String keyName, final String[] columnNames, String[] orderings, boolean unique, final MetadataBuildingContext buildingContext) { int size = columnNames.length; Column[] columns = new Column[size]; Set<Column> unbound = new HashSet<>(); Set<Column> unboundNoLogical = new HashSet<>(); for ( int index = 0; index < size; index++ ) { final String logicalColumnName = columnNames[index]; try { final String physicalColumnName = getPhysicalColumnName( table, logicalColumnName ); columns[index] = new Column( physicalColumnName ); unbound.add( columns[index] ); //column equals and hashcode is based on column name } catch ( MappingException e ) { // If at least 1 columnName does exist, 'columns' will contain a mix of Columns and nulls. In order // to exhaustively report all of the unbound columns at once, w/o an NPE in // Constraint#generateName's array sorting, simply create a fake Column. columns[index] = new Column( logicalColumnName ); unboundNoLogical.add( columns[index] ); } } final String originalKeyName = keyName;
private void processUniqueConstraintHolders(MetadataBuildingContext buildingContext) { if ( uniqueConstraintHoldersByTable == null ) { return; } for ( Map.Entry<MappedTable, List<UniqueConstraintHolder>> tableListEntry : uniqueConstraintHoldersByTable.entrySet() ) { final MappedTable table = tableListEntry.getKey(); final List<UniqueConstraintHolder> uniqueConstraints = tableListEntry.getValue(); for ( UniqueConstraintHolder holder : uniqueConstraints ) { buildUniqueKeyFromColumnNames( table, holder.getName(), holder.getColumns(), buildingContext ); } } uniqueConstraintHoldersByTable.clear(); }
private void processJPAIndexHolders(MetadataBuildingContext buildingContext) { if ( jpaIndexHoldersByTable == null ) { return; } for ( MappedTable table : jpaIndexHoldersByTable.keySet() ) { final List<JPAIndexHolder> jpaIndexHolders = jpaIndexHoldersByTable.get( table ); for ( JPAIndexHolder holder : jpaIndexHolders ) { buildUniqueKeyFromColumnNames( table, holder.getName(), holder.getColumns(), holder.getOrdering(), holder.isUnique(), buildingContext ); } } }
private void buildUniqueKeyFromColumnNames( final MappedTable table, String keyName, final String[] columnNames, String[] orderings, boolean unique, final MetadataBuildingContext buildingContext) { int size = columnNames.length; final Column[] columns = new Column[size]; final Set<Column> unbound = new HashSet<>(); final Set<Column> unboundNoLogical = new HashSet<>(); for ( int index = 0; index < size; index++ ) { final String logicalColumnName = columnNames[index]; try { columns[index] = new Column( table.getNameIdentifier(), logicalColumnName, unique ); unbound.add( columns[index] ); //column equals and hashcode is based on column name } catch (MappingException e) { // If at least 1 columnName does exist, 'columns' will contain a mix of Columns and nulls. In order // to exhaustively report all of the unbound columns at once, w/o an NPE in // Constraint#generateName's array sorting, simply create a fake Column. columns[index] = new Column( table.getNameIdentifier(), logicalColumnName, unique ); unboundNoLogical.add( columns[index] ); } } final String originalKeyName = keyName; if ( unique ) {