File tree Expand file tree Collapse file tree 1 file changed +9
-4
lines changed
hibernate-core/src/main/java/org/hibernate/persister/collection Expand file tree Collapse file tree 1 file changed +9
-4
lines changed Original file line number Diff line number Diff line change @@ -322,10 +322,15 @@ public AbstractCollectionPersister(
322322 keyColumnNames = new String [keySpan ];
323323 keyColumnAliases = new String [keySpan ];
324324 int k = 0 ;
325- for ( Column column : collectionBootDescriptor .getKey ().getColumns () ) {
325+ for ( Selectable selectable : collectionBootDescriptor .getKey ().getSelectables () ) {
326326 // NativeSQL: collect key column and auto-aliases
327- keyColumnNames [k ] = column .getQuotedName ( dialect );
328- keyColumnAliases [k ] = column .getAlias ( dialect , table );
327+ keyColumnAliases [k ] = selectable .getAlias ( dialect , table );
328+ if ( selectable instanceof Column column ) {
329+ keyColumnNames [k ] = column .getQuotedName ( dialect );
330+ }
331+ else {
332+ throw new MappingException ("Collection keys may not contain formulas: " + navigableRole .getFullPath () );
333+ }
329334 k ++;
330335 }
331336
@@ -374,7 +379,7 @@ public AbstractCollectionPersister(
374379 elementFormulas [j ] = form .getFormula ();
375380 }
376381 else {
377- Column col = (Column ) selectable ;
382+ final Column col = (Column ) selectable ;
378383 elementColumnNames [j ] = col .getQuotedName ( dialect );
379384 elementColumnWriters [j ] = col .getWriteExpr ( elementBootDescriptor .getSelectableType ( factory , j ), dialect );
380385 elementColumnReaders [j ] = col .getReadExpr ( dialect );
You can’t perform that action at this time.
0 commit comments