@@ -1889,9 +1889,10 @@ public String selectFragment(String alias, String suffix) {
18891889		for  ( ; i  < sqlSelections .size (); i ++ ) {
18901890			final  SqlSelection  sqlSelection  = sqlSelections .get ( i  );
18911891			final  ColumnReference  columnReference  = (ColumnReference ) sqlSelection .getExpression ();
1892- 			final  String  selectAlias  = !columnReference .isColumnExpressionFormula ()
1893- 					? columnAliases [columnIndex ++] + suffix 
1894- 					: formulaAliases [formulaIndex ++] + suffix ;
1892+ 			final  String  selectAlias  =
1893+ 					columnReference .isColumnExpressionFormula ()
1894+ 							? formulaAliases [formulaIndex ++] + suffix 
1895+ 							: columnAliases [columnIndex ++] + suffix ;
18951896			sqlSelections .set (
18961897					i ,
18971898					new  SqlSelectionImpl (
@@ -1916,50 +1917,48 @@ private ImmutableFetchList fetchProcessor(FetchParent fetchParent, LoaderSqlAstC
19161917		final  FetchableContainer  fetchableContainer  = fetchParent .getReferencedMappingContainer ();
19171918		final  int  size  = fetchableContainer .getNumberOfFetchables ();
19181919		final  ImmutableFetchList .Builder  fetches  = new  ImmutableFetchList .Builder ( fetchableContainer  );
1919- 
19201920		for  ( int  i  = 0 ; i  < size ; i ++ ) {
19211921			final  Fetchable  fetchable  = fetchableContainer .getFetchable ( i  );
19221922			// Ignore plural attributes 
19231923			if  ( !( fetchable  instanceof  PluralAttributeMapping  ) ) {
19241924				final  FetchTiming  fetchTiming  = fetchable .getMappedFetchOptions ().getTiming ();
1925- 				if  ( fetchable .asBasicValuedModelPart () != null  ) {
1926- 					// Ignore lazy basic columns 
1927- 					if  ( fetchTiming  == FetchTiming .DELAYED  ) {
1928- 						continue ;
1929- 					}
1930- 				}
1931- 				else  if  ( fetchable  instanceof  Association  association  ) {
1932- 					// Ignore the fetchable if the FK is on the other side 
1933- 					if  ( association .getSideNature () == ForeignKeyDescriptor .Nature .TARGET  ) {
1934- 						continue ;
1925+ 				if  ( !skipFetchable ( fetchable , fetchTiming  ) ) {
1926+ 					if  ( fetchTiming  == null  ) {
1927+ 						throw  new  AssertionFailure ( "fetchTiming was null"  );
19351928					}
1936- 					// Ensure the FK comes from the root table 
1937- 					if  ( !getRootTableName ().equals ( association .getForeignKeyDescriptor ().getKeyTable () ) ) {
1938- 						continue ;
1929+ 					if  ( fetchable .isSelectable () ) {
1930+ 						final  Fetch  fetch  = fetchParent .generateFetchableFetch (
1931+ 								fetchable ,
1932+ 								fetchParent .resolveNavigablePath ( fetchable  ),
1933+ 								fetchTiming ,
1934+ 								false ,
1935+ 								null ,
1936+ 								creationState 
1937+ 						);
1938+ 						fetches .add ( fetch  );
19391939					}
19401940				}
1941- 
1942- 				if  ( fetchTiming  == null  ) {
1943- 					throw  new  AssertionFailure ("fetchTiming was null" );
1944- 				}
1945- 
1946- 				if  ( fetchable .isSelectable () ) {
1947- 					final  Fetch  fetch  = fetchParent .generateFetchableFetch (
1948- 							fetchable ,
1949- 							fetchParent .resolveNavigablePath ( fetchable  ),
1950- 							fetchTiming ,
1951- 							false ,
1952- 							null ,
1953- 							creationState 
1954- 					);
1955- 					fetches .add ( fetch  );
1956- 				}
19571941			}
19581942		}
1959- 
19601943		return  fetches .build ();
19611944	}
19621945
1946+ 	private  boolean  skipFetchable (Fetchable  fetchable , FetchTiming  fetchTiming ) {
1947+ 		if  ( fetchable .asBasicValuedModelPart () != null  ) {
1948+ 			// Ignore lazy basic columns 
1949+ 			return  fetchTiming  == FetchTiming .DELAYED ;
1950+ 		}
1951+ 		else  if  ( fetchable  instanceof  Association  association  ) {
1952+ 			// Ignore the fetchable if the FK is on the other side 
1953+ 			return  association .getSideNature () == ForeignKeyDescriptor .Nature .TARGET 
1954+ 				// Ensure the FK comes from the root table 
1955+ 				|| !getRootTableName ().equals ( association .getForeignKeyDescriptor ().getKeyTable () );
1956+ 		}
1957+ 		else  {
1958+ 			return  false ;
1959+ 		}
1960+ 	}
1961+ 
19631962	@ Override 
19641963	public  String [] getIdentifierAliases (String  suffix ) {
19651964		// NOTE: this assumes something about how propertySelectFragment is implemented by the subclass! 
0 commit comments