@Override protected void releaseFromUse(Queryable persister, SharedSessionContractImplementor session) { // clean up our id-table rows Helper.INSTANCE.cleanUpRows( idTableInfo.getQualifiedIdTableName(), session ); } }
@Override protected void releaseFromUse(Queryable persister, SharedSessionContractImplementor session) { // clean up our id-table rows Helper.INSTANCE.cleanUpRows( idTableInfo.getQualifiedIdTableName(), session ); } }
protected String generateIdSubselect(Queryable persister, IdTableInfo idTableInfo) { return "select " + String.join( ", ", persister.getIdentifierColumnNames() ) + " from " + idTableInfo.getQualifiedIdTableName(); }
/** * Generate the {@code INSERT}-{@code SELECT} statement for holding matching ids. This is the * {@code INSERT} used to populate the bulk-id table with ids matching the restrictions defined in the * original {@code WHERE} clause * * @param tableAlias The table alias to use for the entity * @param whereClause The processed representation for the user-defined {@code WHERE} clause. * * @return The {@code INSERT}-{@code SELECT} for populating the bulk-id table. */ protected String generateIdInsertSelect( String tableAlias, IdTableInfo idTableInfo, ProcessedWhereClause whereClause) { final Dialect dialect = sessionFactory.getJdbcServices().getJdbcEnvironment().getDialect(); final Select select = generateIdSelect( tableAlias, whereClause ); InsertSelect insert = new InsertSelect( dialect ); if ( sessionFactory.getSessionFactoryOptions().isCommentsEnabled() ) { insert.setComment( "insert-select for " + getTargetedQueryable().getEntityName() + " ids" ); } insert.setTableName( idTableInfo.getQualifiedIdTableName() ); insert.setSelect( select ); return insert.toStatementString(); }