public String toStatementString() { if ( tableName == null ) { throw new HibernateException( "no table name defined for insert-select" ); } if ( select == null ) { throw new HibernateException( "no select defined for insert-select" ); } StringBuilder buf = new StringBuilder( (columnNames.size() * 15) + tableName.length() + 10 ); if ( comment!=null ) { buf.append( "/* " ).append( comment ).append( " */ " ); } buf.append( "insert into " ).append( tableName ); if ( !columnNames.isEmpty() ) { buf.append( " (" ); Iterator itr = columnNames.iterator(); while ( itr.hasNext() ) { buf.append( itr.next() ); if ( itr.hasNext() ) { buf.append( ", " ); } } buf.append( ")" ); } buf.append( ' ' ).append( select.toStatementString() ); return buf.toString(); } }
return select.setOuterJoins( "", "" ).setWhereClause( whereClause.toString() ).toStatementString();
public AbstractIdsBulkIdHandler( SessionFactoryImplementor sessionFactory, HqlSqlWalker walker) { super(sessionFactory, walker); final AbstractRestrictableStatement statement = (AbstractRestrictableStatement) walker.getAST(); final FromElement fromElement = statement.getFromClause().getFromElement(); this.targetedPersister = fromElement.getQueryable(); final ProcessedWhereClause processedWhereClause = processWhereClause( statement.getWhereClause() ); this.idSelectParameterSpecifications = processedWhereClause.getIdSelectParameterSpecifications(); final String bulkTargetAlias = fromElement.getTableAlias(); this.idSelect = generateIdSelect( bulkTargetAlias, processedWhereClause ).toStatementString(); }
.setOuterJoins( "", "" ) .setWhereClause( whereClause ) .toStatementString();
.setOuterJoins( "", "" ) .setWhereClause( whereClause ) .toStatementString();
return select.setOuterJoins( "", "" ).toStatementString();
protected String renderSelect( final int[] tableNumbers, final int[] columnNumbers, final int[] formulaNumbers) { Arrays.sort( tableNumbers ); //get 'em in the right order (not that it really matters) //render the where and from parts int drivingTable = tableNumbers[0]; final String drivingAlias = generateTableAlias( getRootAlias(), drivingTable ); //we *could* regerate this inside each called method! final String where = createWhereByKey( drivingTable, drivingAlias ); final String from = createFrom( drivingTable, drivingAlias ); //now render the joins JoinFragment jf = createJoin( tableNumbers, drivingAlias ); //now render the select clause SelectFragment selectFragment = createSelect( columnNumbers, formulaNumbers ); //now tie it all together Select select = new Select( getFactory().getDialect() ); select.setSelectClause( selectFragment.toFragmentString().substring( 2 ) ); select.setFromClause( from ); select.setWhereClause( where ); select.setOuterJoins( jf.toFromFragmentString(), jf.toWhereFragmentString() ); if ( getFactory().getSessionFactoryOptions().isCommentsEnabled() ) { select.setComment( "sequential select " + getEntityName() ); } return select.toStatementString(); }
sql = select.toStatementString();
sql = select.toStatementString();
select.setComment( getComment() ); sql = select.toStatementString();
public String toStatementString() { if ( tableName == null ) throw new HibernateException( "no table name defined for insert-select" ); if ( select == null ) throw new HibernateException( "no select defined for insert-select" ); StringBuffer buf = new StringBuffer( (columnNames.size() * 15) + tableName.length() + 10 ); if ( comment!=null ) { buf.append( "/* " ).append( comment ).append( " */ " ); } buf.append( "insert into " ).append( tableName ); if ( !columnNames.isEmpty() ) { buf.append( " (" ); Iterator itr = columnNames.iterator(); while ( itr.hasNext() ) { buf.append( itr.next() ); if ( itr.hasNext() ) { buf.append( ", " ); } } buf.append( ")" ); } buf.append( ' ' ).append( select.toStatementString() ); return buf.toString(); } }
public String toStatementString() { if ( tableName == null ) throw new HibernateException( "no table name defined for insert-select" ); if ( select == null ) throw new HibernateException( "no select defined for insert-select" ); StringBuffer buf = new StringBuffer( (columnNames.size() * 15) + tableName.length() + 10 ); if ( comment!=null ) { buf.append( "/* " ).append( comment ).append( " */ " ); } buf.append( "insert into " ).append( tableName ); if ( !columnNames.isEmpty() ) { buf.append( " (" ); Iterator itr = columnNames.iterator(); while ( itr.hasNext() ) { buf.append( itr.next() ); if ( itr.hasNext() ) { buf.append( ", " ); } } buf.append( ")" ); } buf.append( ' ' ).append( select.toStatementString() ); return buf.toString(); } }
public String toStatementString() { if ( tableName == null ) throw new HibernateException( "no table name defined for insert-select" ); if ( select == null ) throw new HibernateException( "no select defined for insert-select" ); StringBuffer buf = new StringBuffer( (columnNames.size() * 15) + tableName.length() + 10 ); if ( comment!=null ) { buf.append( "/* " ).append( comment ).append( " */ " ); } buf.append( "insert into " ).append( tableName ); if ( !columnNames.isEmpty() ) { buf.append( " (" ); Iterator itr = columnNames.iterator(); while ( itr.hasNext() ) { buf.append( itr.next() ); if ( itr.hasNext() ) { buf.append( ", " ); } } buf.append( ")" ); } buf.append( ' ' ).append( select.toStatementString() ); return buf.toString(); } }
private String generateEntityIdByNaturalIdSql() { Select select = new Select( getFactory().getDialect() ); if ( getFactory().getSettings().isCommentsEnabled() ) { select.setComment( "get current natural-id->entity-id state " + getEntityName() ); } final String rootAlias = getRootAlias(); select.setSelectClause( identifierSelectFragment( rootAlias, "" ) ); select.setFromClause( fromTableFragment( rootAlias ) + fromJoinFragment( rootAlias, true, false ) ); final StringBuilder whereClause = new StringBuilder(); final int[] propertyTableNumbers = getPropertyTableNumbers(); final int[] naturalIdPropertyIndexes = this.getNaturalIdentifierProperties(); for ( int propIdx = 0; propIdx < naturalIdPropertyIndexes.length; propIdx++ ) { if ( propIdx > 0 ) { whereClause.append( " and " ); } final int naturalIdIdx = naturalIdPropertyIndexes[propIdx]; final String tableAlias = generateTableAlias( rootAlias, propertyTableNumbers[naturalIdIdx] ); final String[] propertyColumnNames = getPropertyColumnNames( naturalIdIdx ); final String[] aliasedPropertyColumns = StringHelper.qualify( tableAlias, propertyColumnNames ); whereClause.append( StringHelper.join( "=? and ", aliasedPropertyColumns ) ).append( "=?" ); } whereClause.append( whereJoinFragment( getRootAlias(), true, false ) ); return select.setOuterJoins( "", "" ).setWhereClause( whereClause.toString() ).toStatementString(); }
private String generateGeneratedValuesSelectString(ValueInclusion[] inclusions) { Select select = new Select( getFactory().getDialect() ); if ( getFactory().getSettings().isCommentsEnabled() ) { select.setComment( "get generated state " + getEntityName() ); } String[] aliasedIdColumns = StringHelper.qualify( getRootAlias(), getIdentifierColumnNames() ); // Here we render the select column list based on the properties defined as being generated. // For partial component generation, we currently just re-select the whole component // rather than trying to handle the individual generated portions. String selectClause = concretePropertySelectFragment( getRootAlias(), inclusions ); selectClause = selectClause.substring( 2 ); String fromClause = fromTableFragment( getRootAlias() ) + fromJoinFragment( getRootAlias(), true, false ); String whereClause = new StringBuffer() .append( StringHelper.join( "=? and ", aliasedIdColumns ) ) .append( "=?" ) .append( whereJoinFragment( getRootAlias(), true, false ) ) .toString(); return select.setSelectClause( selectClause ) .setFromClause( fromClause ) .setOuterJoins( "", "" ) .setWhereClause( whereClause ) .toStatementString(); }
private String generateGeneratedValuesSelectString(ValueInclusion[] inclusions) { Select select = new Select( getFactory().getDialect() ); if ( getFactory().getSettings().isCommentsEnabled() ) { select.setComment( "get generated state " + getEntityName() ); } String[] aliasedIdColumns = StringHelper.qualify( getRootAlias(), getIdentifierColumnNames() ); // Here we render the select column list based on the properties defined as being generated. // For partial component generation, we currently just re-select the whole component // rather than trying to handle the individual generated portions. String selectClause = concretePropertySelectFragment( getRootAlias(), inclusions ); selectClause = selectClause.substring( 2 ); String fromClause = fromTableFragment( getRootAlias() ) + fromJoinFragment( getRootAlias(), true, false ); String whereClause = new StringBuffer() .append( StringHelper.join( "=? and ", aliasedIdColumns ) ) .append( "=?" ) .append( whereJoinFragment( getRootAlias(), true, false ) ) .toString(); return select.setSelectClause( selectClause ) .setFromClause( fromClause ) .setOuterJoins( "", "" ) .setWhereClause( whereClause ) .toStatementString(); }
private String generateEntityIdByNaturalIdSql() { Select select = new Select( getFactory().getDialect() ); if ( getFactory().getSettings().isCommentsEnabled() ) { select.setComment( "get current natural-id->entity-id state " + getEntityName() ); } final String rootAlias = getRootAlias(); select.setSelectClause( identifierSelectFragment( rootAlias, "" ) ); select.setFromClause( fromTableFragment( rootAlias ) + fromJoinFragment( rootAlias, true, false ) ); final StringBuilder whereClause = new StringBuilder(); final int[] propertyTableNumbers = getPropertyTableNumbers(); final int[] naturalIdPropertyIndexes = this.getNaturalIdentifierProperties(); for ( int propIdx = 0; propIdx < naturalIdPropertyIndexes.length; propIdx++ ) { if ( propIdx > 0 ) { whereClause.append( " and " ); } final int naturalIdIdx = naturalIdPropertyIndexes[propIdx]; final String tableAlias = generateTableAlias( rootAlias, propertyTableNumbers[naturalIdIdx] ); final String[] propertyColumnNames = getPropertyColumnNames( naturalIdIdx ); final String[] aliasedPropertyColumns = StringHelper.qualify( tableAlias, propertyColumnNames ); whereClause.append( StringHelper.join( "=? and ", aliasedPropertyColumns ) ).append( "=?" ); } whereClause.append( whereJoinFragment( getRootAlias(), true, false ) ); return select.setOuterJoins( "", "" ).setWhereClause( whereClause.toString() ).toStatementString(); }
protected String generateSnapshotSelectString() { StringBuffer where = new StringBuffer() .append( StringHelper.join( "=? and ", StringHelper.qualify( getRootAlias(), getIdentifierColumnNames() ) ) ) .append( "=?" ) .append( whereJoinFragment( getRootAlias(), true, false ) ); /*if ( isVersioned() ) { where.append(" and ") .append( getVersionColumnName() ) .append("=?"); }*/ //TODO: should we use SELECT .. FOR UPDATE? Select select = new Select( getFactory().getDialect() ); if ( getFactory().getSettings().isCommentsEnabled() ) { select.setComment( "get current state " + getEntityName() ); } return select.setSelectClause( StringHelper.join( ", ", StringHelper.qualify( getRootAlias(), getIdentifierColumnNames() ) ) + concretePropertySelectFragment( getRootAlias(), getPropertyUpdateability() ) ) .setFromClause( fromTableFragment( getRootAlias() ) + fromJoinFragment( getRootAlias(), true, false ) ) .setOuterJoins( "", "" ) .setWhereClause( where.toString() ) .toStatementString(); }
protected String renderSelect(final int[] tableNumbers, final int[] columnNumbers, final int[] formulaNumbers) { Arrays.sort( tableNumbers ); //get 'em in the right order (not that it really matters) //render the where and from parts int drivingTable = tableNumbers[0]; final String drivingAlias = generateTableAlias( getRootAlias(), drivingTable ); //we *could* regerate this inside each called method! final String where = createWhereByKey( drivingTable, drivingAlias ); final String from = createFrom( drivingTable, drivingAlias ); //now render the joins JoinFragment jf = createJoin( tableNumbers, drivingAlias ); //now render the select clause SelectFragment selectFragment = createSelect( columnNumbers, formulaNumbers ); //now tie it all together Select select = new Select( getFactory().getDialect() ); select.setSelectClause( selectFragment.toFragmentString().substring( 2 ) ); select.setFromClause( from ); select.setWhereClause( where ); select.setOuterJoins( jf.toFromFragmentString(), jf.toWhereFragmentString() ); if ( getFactory().getSettings().isCommentsEnabled() ) { select.setComment( "sequential select " + getEntityName() ); } return select.toStatementString(); }