/** * Generate the SQL INSERT that creates a new row */ @Override protected String generateInsertRowString() { Insert insert = new Insert( getDialect() ) .setTableName( qualifiedTableName ) .addColumns( keyColumnNames ); if ( hasIdentifier) insert.addColumn( identifierColumnName ); if ( hasIndex /*&& !indexIsFormula*/ ) { insert.addColumns( indexColumnNames, indexColumnIsSettable ); } if ( getFactory().getSettings().isCommentsEnabled() ) { insert.setComment( "insert collection row " + getRole() ); } //if ( !elementIsFormula ) { insert.addColumns( elementColumnNames, elementColumnIsSettable, elementColumnWriters ); //} return insert.toStatementString(); }
/** * Used to generate an insery statement against the root table in the * case of identifier generation strategies where the insert statement * executions actually generates the identifier value. * * @param includeProperty indices of the properties to include in the * insert statement. * @return The insert SQL statement string */ protected String generateIdentityInsertString(boolean[] includeProperty) { Insert insert = identityDelegate.prepareIdentifierGeneratingInsert(); insert.setTableName( getTableName( 0 ) ); // add normal properties for ( int i = 0; i < entityMetamodel.getPropertySpan(); i++ ) { if ( includeProperty[i] && isPropertyOfTable( i, 0 ) ) { // this property belongs on the table and is to be inserted insert.addColumns( getPropertyColumnNames(i), propertyColumnInsertable[i] ); } } // add the discriminator addDiscriminatorToInsert( insert ); // delegate already handles PK columns if ( getFactory().getSettings().isCommentsEnabled() ) { insert.setComment( "insert " + getEntityName() ); } return insert.toStatementString(); }
/** * Generate the SQL INSERT that creates a new row */ protected String generateInsertRowString() { Insert insert = new Insert( getDialect() ) .setTableName( qualifiedTableName ) .addColumns( keyColumnNames ); if ( hasIdentifier) insert.addColumn( identifierColumnName ); if ( hasIndex /*&& !indexIsFormula*/ ) { insert.addColumns( indexColumnNames, indexColumnIsSettable ); } if ( getFactory().getSettings().isCommentsEnabled() ) { insert.setComment( "insert collection row " + getRole() ); } //if ( !elementIsFormula ) { insert.addColumns( elementColumnNames, elementColumnIsSettable ); //} return insert.toStatementString(); }
@Override public Insert setComment(String comment) { // don't allow comments on these insert statements as comments totally // blow up the Oracle getGeneratedKeys "support" :( LOG.disallowingInsertStatementComment(); return this; }
@Override protected void addDiscriminatorToInsert(Insert insert) { if ( explicitDiscriminatorColumnName != null ) { insert.addColumn( explicitDiscriminatorColumnName, getDiscriminatorSQLValue() ); } }
/** * Generate the SQL that inserts a row */ protected String generateInsertString(boolean identityInsert, boolean[] includeProperty, int j) { // todo : remove the identityInsert param and variations; // identity-insert strings are now generated from generateIdentityInsertString() Insert insert = new Insert( getFactory().getDialect() ) .setTableName( getTableName( j ) ); // add normal properties for ( int i = 0; i < entityMetamodel.getPropertySpan(); i++ ) { if ( includeProperty[i] && isPropertyOfTable( i, j ) ) { // this property belongs on the table and is to be inserted insert.addColumns( getPropertyColumnNames(i), propertyColumnInsertable[i] ); } } // add the discriminator if ( j == 0 ) { addDiscriminatorToInsert( insert ); } // add the primary key if ( j == 0 && identityInsert ) { insert.addIdentityColumn( getKeyColumns( 0 )[0] ); } else { insert.addColumns( getKeyColumns( j ) ); } if ( getFactory().getSettings().isCommentsEnabled() ) { insert.setComment( "insert " + getEntityName() ); } String result = insert.toStatementString(); // append the SQL to return the generated identifier if ( j == 0 && identityInsert && useInsertSelectIdentity() ) { //TODO: suck into Insert result = getFactory().getDialect().appendIdentitySelectToInsert( result ); } return result; }
public Insert setComment(String comment) { // don't allow comments on these insert statements as comments totally // blow up the Oracle getGeneratedKeys "support" :( log.info( "disallowing insert statement comment for select-identity due to Oracle driver bug" ); return this; }
protected void addDiscriminatorToInsert(Insert insert) { if (discriminatorInsertable) { insert.addColumn( getDiscriminatorColumnName(), discriminatorSQLValue ); } }
protected void addDiscriminatorToInsert(Insert insert) {}