private void determineValueSelectExpressions(QueryableCollection collectionPersister, List selections) { AliasGenerator aliasGenerator = new LocalAliasGenerator( 1 ); appendSelectExpressions( collectionPersister.getElementColumnNames(), selections, aliasGenerator ); Type valueType = collectionPersister.getElementType(); if ( valueType.isAssociationType() ) { EntityType valueEntityType = (EntityType) valueType; Queryable valueEntityPersister = (Queryable) sfi().getEntityPersister( valueEntityType.getAssociatedEntityName( sfi() ) ); SelectFragment fragment = valueEntityPersister.propertySelectFragmentFragment( elementTableAlias(), null, false ); appendSelectExpressions( fragment, selections, aliasGenerator ); } }
@SuppressWarnings({"unchecked", "ForLoopReplaceableByForEach"}) private void appendSelectExpressions(String[] columnNames, List selections, AliasGenerator aliasGenerator) { for ( int i = 0; i < columnNames.length; i++ ) { selections.add( new BasicSelectExpression( collectionTableAlias() + '.' + columnNames[i], aliasGenerator.generateAlias( columnNames[i] ) ) ); } }
@Override protected String[] resolveColumns(QueryableCollection collectionPersister) { List selections = new ArrayList(); determineKeySelectExpressions( collectionPersister, selections ); determineValueSelectExpressions( collectionPersister, selections ); String text = ""; String[] columns = new String[selections.size()]; for ( int i = 0; i < selections.size(); i++ ) { SelectExpression selectExpression = (SelectExpression) selections.get( i ); text += ( ", " + selectExpression.getExpression() + " as " + selectExpression.getAlias() ); columns[i] = selectExpression.getExpression(); } text = text.substring( 2 ); //strip leading ", " setText( text ); setResolved(); return columns; }
private void determineKeySelectExpressions(QueryableCollection collectionPersister, List selections) { AliasGenerator aliasGenerator = new LocalAliasGenerator( 0 ); appendSelectExpressions( collectionPersister.getIndexColumnNames(), selections, aliasGenerator ); Type keyType = collectionPersister.getIndexType(); if ( keyType.isEntityType() ) { MapKeyEntityFromElement mapKeyEntityFromElement = findOrAddMapKeyEntityFromElement( collectionPersister ); Queryable keyEntityPersister = mapKeyEntityFromElement.getQueryable(); SelectFragment fragment = keyEntityPersister.propertySelectFragmentFragment( mapKeyEntityFromElement.getTableAlias(), null, false ); appendSelectExpressions( fragment, selections, aliasGenerator ); } }
private void determineKeySelectExpressions(QueryableCollection collectionPersister, List selections) { AliasGenerator aliasGenerator = new LocalAliasGenerator( 0 ); appendSelectExpressions( collectionPersister.getIndexColumnNames(), selections, aliasGenerator ); Type keyType = collectionPersister.getIndexType(); if ( keyType.isAssociationType() ) { EntityType entityType = (EntityType) keyType; Queryable keyEntityPersister = ( Queryable ) sfi().getEntityPersister( entityType.getAssociatedEntityName( sfi() ) ); SelectFragment fragment = keyEntityPersister.propertySelectFragmentFragment( collectionTableAlias(), null, false ); appendSelectExpressions( fragment, selections, aliasGenerator ); } }
private String collectionTableAlias() { return getFromElement().getCollectionTableAlias() != null ? getFromElement().getCollectionTableAlias() : getFromElement().getTableAlias(); }
public SessionFactoryImplementor sfi() { return getSessionFactoryHelper().getFactory(); }
@Override public void setText(String s) { if ( isResolved() ) { return; } super.setText( s ); }
private void determineKeySelectExpressions(QueryableCollection collectionPersister, List selections) { AliasGenerator aliasGenerator = new LocalAliasGenerator( 0 ); appendSelectExpressions( collectionPersister.getIndexColumnNames(), selections, aliasGenerator ); Type keyType = collectionPersister.getIndexType(); if ( keyType.isAssociationType() ) { EntityType entityType = (EntityType) keyType; Queryable keyEntityPersister = ( Queryable ) sfi().getEntityPersister( entityType.getAssociatedEntityName( sfi() ) ); SelectFragment fragment = keyEntityPersister.propertySelectFragmentFragment( collectionTableAlias(), null, false ); appendSelectExpressions( fragment, selections, aliasGenerator ); } }
private String elementTableAlias() { return getFromElement().getTableAlias(); }
public SessionFactoryImplementor sfi() { return getSessionFactoryHelper().getFactory(); }
public void setText(String s) { if ( isResolved() ) { return; } super.setText( s ); }
protected String[] resolveColumns(QueryableCollection collectionPersister) { List selections = new ArrayList(); determineKeySelectExpressions( collectionPersister, selections ); determineValueSelectExpressions( collectionPersister, selections ); String text = ""; String[] columns = new String[selections.size()]; for ( int i = 0; i < selections.size(); i++ ) { SelectExpression selectExpression = (SelectExpression) selections.get(i); text += ( ", " + selectExpression.getExpression() + " as " + selectExpression.getAlias() ); columns[i] = selectExpression.getExpression(); } text = text.substring( 2 ); //strip leading ", " setText( text ); setResolved(); return columns; }
private void determineValueSelectExpressions(QueryableCollection collectionPersister, List selections) { AliasGenerator aliasGenerator = new LocalAliasGenerator( 1 ); appendSelectExpressions( collectionPersister.getElementColumnNames(), selections, aliasGenerator ); Type valueType = collectionPersister.getElementType(); if ( valueType.isAssociationType() ) { EntityType valueEntityType = (EntityType) valueType; Queryable valueEntityPersister = ( Queryable ) sfi().getEntityPersister( valueEntityType.getAssociatedEntityName( sfi() ) ); SelectFragment fragment = valueEntityPersister.propertySelectFragmentFragment( elementTableAlias(), null, false ); appendSelectExpressions( fragment, selections, aliasGenerator ); } }
private String collectionTableAlias() { return getFromElement().getCollectionTableAlias() != null ? getFromElement().getCollectionTableAlias() : getFromElement().getTableAlias(); }
public SessionFactoryImplementor sfi() { return getSessionFactoryHelper().getFactory(); }
public void setText(String s) { if ( isResolved() ) { return; } super.setText( s ); }
private void appendSelectExpressions(String[] columnNames, List selections, AliasGenerator aliasGenerator) { for ( int i = 0; i < columnNames.length; i++ ) { selections.add( new BasicSelectExpression( collectionTableAlias() + '.' + columnNames[i], aliasGenerator.generateAlias( columnNames[i] ) ) ); } }
protected String[] resolveColumns(QueryableCollection collectionPersister) { List selections = new ArrayList(); determineKeySelectExpressions( collectionPersister, selections ); determineValueSelectExpressions( collectionPersister, selections ); String text = ""; String[] columns = new String[selections.size()]; for ( int i = 0; i < selections.size(); i++ ) { SelectExpression selectExpression = (SelectExpression) selections.get(i); text += ( ", " + selectExpression.getExpression() + " as " + selectExpression.getAlias() ); columns[i] = selectExpression.getExpression(); } text = text.substring( 2 ); //strip leading ", " setText( text ); setResolved(); return columns; }
private void determineValueSelectExpressions(QueryableCollection collectionPersister, List selections) { AliasGenerator aliasGenerator = new LocalAliasGenerator( 1 ); appendSelectExpressions( collectionPersister.getElementColumnNames(), selections, aliasGenerator ); Type valueType = collectionPersister.getElementType(); if ( valueType.isAssociationType() ) { EntityType valueEntityType = (EntityType) valueType; Queryable valueEntityPersister = ( Queryable ) sfi().getEntityPersister( valueEntityType.getAssociatedEntityName( sfi() ) ); SelectFragment fragment = valueEntityPersister.propertySelectFragmentFragment( elementTableAlias(), null, false ); appendSelectExpressions( fragment, selections, aliasGenerator ); } }