String suffix, boolean allProperties) { SelectFragment select = new SelectFragment() .setSuffix( suffix ) .setUsedAliases( getIdentifierAliases() ); if ( selectable ) { String subalias = generateTableAlias( tableAlias, columnTableNumbers[i] ); select.addColumnTemplate( subalias, columnReaderTemplates[i], columnAliases[i] ); if ( selectable ) { String subalias = generateTableAlias( tableAlias, formulaTableNumbers[i] ); select.addFormula( subalias, formulaTemplates[i], formulaAliases[i] ); select.addColumn( tableAlias, rowIdName, ROWID_ALIAS );
public SelectFragment setExtraSelectList(CaseFragment caseFragment, String fragmentAlias) { setExtraSelectList( caseFragment.setReturnColumnName(fragmentAlias, suffix).toFragmentString() ); return this; }
public String identifierSelectFragment(String name, String suffix) { return new SelectFragment() .setSuffix( suffix ) .addColumns( name, getIdentifierColumnNames(), getIdentifierAliases() ) .toFragmentString() .substring( 2 ); //strip leading ", " }
protected SelectFragment generateSelectFragment(String alias, String columnSuffix) { return new SelectFragment() .setSuffix( columnSuffix ) .addColumns( alias, keyColumnNames, keyColumnAliases ); }
protected void appendIndexColumns(SelectFragment frag, String alias) { if ( hasIndex ) { for ( int i = 0; i < indexColumnIsGettable.length; i++ ) { if ( indexColumnIsGettable[i] ) { frag.addColumn( alias, indexColumnNames[i], indexColumnAliases[i] ); } else { frag.addFormula( alias, indexFormulaTemplates[i], indexColumnAliases[i] ); } } } }
protected void appendElementColumns(SelectFragment frag, String elemAlias) { for ( int i = 0; i < elementColumnIsSettable.length; i++ ) { if ( elementColumnIsSettable[i] ) { frag.addColumnTemplate( elemAlias, elementColumnReaderTemplates[i], elementColumnAliases[i] ); } else { frag.addFormula( elemAlias, elementFormulaTemplates[i], elementColumnAliases[i] ); } } }
protected String concretePropertySelectFragment(String alias, InclusionChecker inclusionChecker) { int propertyCount = getPropertyNames().length; int[] propertyTableNumbers = getPropertyTableNumbersInSelect(); SelectFragment frag = new SelectFragment(); for ( int i = 0; i < propertyCount; i++ ) { if ( inclusionChecker.includeProperty( i ) ) { frag.addColumnTemplates( generateTableAlias( alias, propertyTableNumbers[i] ), propertyColumnReaderTemplates[i], propertyColumnAliases[i] ); frag.addFormulas( generateTableAlias( alias, propertyTableNumbers[i] ), propertyColumnFormulaTemplates[i], propertyColumnAliases[i] ); } } return frag.toFragmentString(); }
protected String concretePropertySelectFragment(String alias, boolean[] includeProperty) { int propertyCount = getPropertyNames().length; int[] propertyTableNumbers = getPropertyTableNumbersInSelect(); SelectFragment frag = new SelectFragment(); for ( int i = 0; i < propertyCount; i++ ) { if ( includeProperty[i] ) { //ie. updateable, not a formula frag.addColumns( generateTableAlias( alias, propertyTableNumbers[i] ), propertyColumnNames[i], propertyColumnAliases[i] ); //don't need to handle formulas 'cos they aren't updateable! } } return frag.toFragmentString(); }
public String propertySelectFragment(String name, String suffix, boolean allProperties) { SelectFragment select = new SelectFragment() .setSuffix( suffix ) .setUsedAliases( getIdentifierAliases() ); if ( selectable ) { String subalias = generateTableAlias( name, columnTableNumbers[i] ); select.addColumn( subalias, columns[i], columnAliases[i] ); if ( selectable ) { String subalias = generateTableAlias( name, formulaTableNumbers[i] ); select.addFormula( subalias, formulaTemplates[i], formulaAliases[i] ); if ( hasRowId() ) select.addColumn( name, rowIdName, ROWID_ALIAS ); return select.toFragmentString();
protected SelectFragment createSelect( final int[] subclassColumnNumbers, final int[] subclassFormulaNumbers) { SelectFragment selectFragment = new SelectFragment(); int[] columnTableNumbers = getSubclassColumnTableNumberClosure(); String[] columnAliases = getSubclassColumnAliasClosure(); String[] columnReaderTemplates = getSubclassColumnReaderTemplateClosure(); for ( int i = 0; i < subclassColumnNumbers.length; i++ ) { int columnNumber = subclassColumnNumbers[i]; if ( subclassColumnSelectableClosure[columnNumber] ) { final String subalias = generateTableAlias( getRootAlias(), columnTableNumbers[columnNumber] ); selectFragment.addColumnTemplate( subalias, columnReaderTemplates[columnNumber], columnAliases[columnNumber] ); } } int[] formulaTableNumbers = getSubclassFormulaTableNumberClosure(); String[] formulaTemplates = getSubclassFormulaTemplateClosure(); String[] formulaAliases = getSubclassFormulaAliasClosure(); for ( int i = 0; i < subclassFormulaNumbers.length; i++ ) { int formulaNumber = subclassFormulaNumbers[i]; final String subalias = generateTableAlias( getRootAlias(), formulaTableNumbers[formulaNumber] ); selectFragment.addFormula( subalias, formulaTemplates[formulaNumber], formulaAliases[formulaNumber] ); } return selectFragment; }
protected void appendIdentifierColumns(SelectFragment frag, String alias) { if ( hasIdentifier ) { frag.addColumn( alias, identifierColumnName, identifierColumnAlias ); } }
private String manyToManySelectFragment( Joinable rhs, String rhsAlias, String lhsAlias, String collectionSuffix) { SelectFragment frag = generateSelectFragment( lhsAlias, collectionSuffix ); String[] elementColumnNames = rhs.getKeyColumnNames(); frag.addColumns( rhsAlias, elementColumnNames, elementColumnAliases ); appendIndexColumns( frag, lhsAlias ); appendIdentifierColumns( frag, lhsAlias ); return frag.toFragmentString() .substring( 2 ); //strip leading ',' }
public Select setSelectClause(SelectFragment selectFragment) { setSelectClause( selectFragment.toFragmentString().substring( 2 ) ); return this; }
public SelectFragment addFormulas(String tableAlias, String[] formulas, String[] formulaAliases) { for ( int i=0; i<formulas.length; i++ ) { if ( formulas[i]!=null ) { addFormula( tableAlias, formulas[i], formulaAliases[i] ); } } return this; }
protected SelectFragment createSelect(final int[] subclassColumnNumbers, final int[] subclassFormulaNumbers) { SelectFragment selectFragment = new SelectFragment(); int[] columnTableNumbers = getSubclassColumnTableNumberClosure(); String[] columnAliases = getSubclassColumnAliasClosure(); String[] columns = getSubclassColumnClosure(); for ( int i = 0; i < subclassColumnNumbers.length; i++ ) { if ( subclassColumnSelectableClosure[i] ) { int columnNumber = subclassColumnNumbers[i]; final String subalias = generateTableAlias( getRootAlias(), columnTableNumbers[columnNumber] ); selectFragment.addColumn( subalias, columns[columnNumber], columnAliases[columnNumber] ); } } int[] formulaTableNumbers = getSubclassFormulaTableNumberClosure(); String[] formulaTemplates = getSubclassFormulaTemplateClosure(); String[] formulaAliases = getSubclassFormulaAliasClosure(); for ( int i = 0; i < subclassFormulaNumbers.length; i++ ) { int formulaNumber = subclassFormulaNumbers[i]; final String subalias = generateTableAlias( getRootAlias(), formulaTableNumbers[formulaNumber] ); selectFragment.addFormula( subalias, formulaTemplates[formulaNumber], formulaAliases[formulaNumber] ); } return selectFragment; }
public void addDiscriminatorToSelect(SelectFragment select, String name, String suffix) { if ( hasSubclasses() ) { if ( explicitDiscriminatorColumnName == null ) { select.setExtraSelectList( discriminatorFragment( name ), getDiscriminatorAlias() ); } else { if ( getEntityMetamodel().getSuperclass() != null ) { name = generateTableAlias( name, getRootHierarchyClassTableIndex() ); } select.addColumn( name, explicitDiscriminatorColumnName, discriminatorAlias ); } } }
protected SelectFragment generateSelectFragment(String alias, String columnSuffix) { return new SelectFragment() .setSuffix( columnSuffix ) .addColumns( alias, keyColumnNames, keyColumnAliases ); }
SelectFragment selectFragment = new SelectFragment(); selectFragment.addColumns( rooAlias, getIdentifierColumnNames(), getIdentifierAliases() ); select.setSelectClause( selectFragment );
public SelectFragment addColumnTemplates(String tableAlias, String[] columnTemplates, String[] columnAliases) { // In this context, there's no difference between a column template and a formula. return addFormulas( tableAlias, columnTemplates, columnAliases ); }
searchInterests = new SearchFragment(); selectInterests = new SelectFragment();