diff --git a/hibernate-core/src/main/java/org/hibernate/metamodel/spi/relational/AbstractTableSpecification.java b/hibernate-core/src/main/java/org/hibernate/metamodel/spi/relational/AbstractTableSpecification.java index a7eee9d666..b162a5e4ff 100644 --- a/hibernate-core/src/main/java/org/hibernate/metamodel/spi/relational/AbstractTableSpecification.java +++ b/hibernate-core/src/main/java/org/hibernate/metamodel/spi/relational/AbstractTableSpecification.java @@ -59,7 +59,7 @@ public Iterable values() { @Override public Column locateOrCreateColumn(String name) { - if(values.containsKey( name )){ + if ( values.containsKey( name ) ) { return (Column) values.get( name ); } final Column column = new Column( this, values.size(), name ); @@ -69,7 +69,7 @@ public Column locateOrCreateColumn(String name) { @Override public DerivedValue locateOrCreateDerivedValue(String fragment) { - if(values.containsKey( fragment )){ + if ( values.containsKey( fragment ) ) { return (DerivedValue) values.get( fragment ); } final DerivedValue value = new DerivedValue( this, values.size(), fragment ); @@ -94,6 +94,31 @@ public ForeignKey createForeignKey(TableSpecification targetTable, String name) return fk; } + @Override + public ForeignKey locateForeignKey(String name) { + for ( ForeignKey fk : foreignKeys ) { + if ( fk.getName().equals( name ) ) { + return fk; + } + } + return null; + } + + @Override + public Iterable locateForeignKey(TableSpecification targetTable) { + List result = null; + for ( ForeignKey fk : foreignKeys ) { + if ( fk.getTargetTable().equals( targetTable ) ) { + if ( result == null ) { + result = new ArrayList(); + } + result.add( fk ); + } + } + return result; + } + + @Override public PrimaryKey getPrimaryKey() { return primaryKey; diff --git a/hibernate-core/src/main/java/org/hibernate/metamodel/spi/relational/Table.java b/hibernate-core/src/main/java/org/hibernate/metamodel/spi/relational/Table.java index 71c370e9ea..07044f809a 100644 --- a/hibernate-core/src/main/java/org/hibernate/metamodel/spi/relational/Table.java +++ b/hibernate-core/src/main/java/org/hibernate/metamodel/spi/relational/Table.java @@ -86,6 +86,7 @@ public Iterable getIndexes() { return indexes.values(); } + @Override public Index getOrCreateIndex(String name) { if( indexes.containsKey( name ) ){ return indexes.get( name ); @@ -100,6 +101,7 @@ public Iterable getUniqueKeys() { return uniqueKeys.values(); } + @Override public UniqueKey getOrCreateUniqueKey(String name) { if( uniqueKeys.containsKey( name ) ){ return uniqueKeys.get( name ); @@ -109,6 +111,7 @@ public UniqueKey getOrCreateUniqueKey(String name) { return uniqueKey; } + @Override public Iterable getCheckConstraints() { return checkConstraints;