diff --git a/hibernate-core/src/main/java/org/hibernate/boot/internal/InFlightMetadataCollectorImpl.java b/hibernate-core/src/main/java/org/hibernate/boot/internal/InFlightMetadataCollectorImpl.java index 4f0c817e8c15..1c0098e50868 100644 --- a/hibernate-core/src/main/java/org/hibernate/boot/internal/InFlightMetadataCollectorImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/boot/internal/InFlightMetadataCollectorImpl.java @@ -978,15 +978,20 @@ public void addColumnNameBinding(Table table, Identifier logicalName, Column col @Override public String getPhysicalColumnName(Table table, String logicalName) throws MappingException { - return getPhysicalColumnName( table, getDatabase().toIdentifier( logicalName ) ); + Identifier logicalColumnIdentifier = getDatabase().toIdentifier(logicalName); + if (logicalColumnIdentifier == null) { + throw new MappingException( String.format( + Locale.ENGLISH, + "Column with logical name '%s' in table '%s' cannot be mapped to column identifier", + logicalName, + table.getName() + ) ); + } + return getPhysicalColumnName( table, logicalColumnIdentifier); } @Override public String getPhysicalColumnName(Table table, Identifier logicalName) throws MappingException { - if ( logicalName == null ) { - throw new MappingException( "Logical column name cannot be null" ); - } - Table currentTable = table; String physicalName = null;