protected List extractResults(ResultSet resultSet) { try { return loader.processResultSet( resultSet ); } catch (SQLException e) { throw convert( e, "Error extracting results from CallableStatement" ); } }
@Override public Output getCurrent() { if ( currentReturnState == null ) { return null; } return currentReturnState.getOutput(); }
public Output getOutput() { if ( rtn == null ) { rtn = buildOutput(); } return rtn; }
protected Output buildOutput() { if ( log.isDebugEnabled() ) { log.debugf( "Building Return [isResultSet=%s, updateCount=%s, extendedReturn=%s", isResultSet(), getUpdateCount(), hasExtendedReturns() ); } if ( isResultSet() ) { return buildResultSetOutput( extractCurrentResults() ); } else if ( getUpdateCount() >= 0 ) { return buildUpdateCountOutput( updateCount ); } else if ( hasExtendedReturns() ) { return buildExtendedReturn(); } throw new NoMoreReturnsException(); }
@Override public boolean goToNext() { if ( currentReturnState == null ) { return false; } if ( currentReturnState.indicatesMoreOutputs() ) { // prepare the next return state try { final boolean isResultSet = jdbcStatement.getMoreResults(); currentReturnState = buildCurrentReturnState( isResultSet ); } catch (SQLException e) { throw convert( e, "Error calling CallableStatement.getMoreResults" ); } } // and return return currentReturnState != null && currentReturnState.indicatesMoreOutputs(); }
public boolean indicatesMoreOutputs() { return isResultSet() || getUpdateCount() >= 0; }
public OutputsImpl(ResultContext context, PreparedStatement jdbcStatement) { this.context = context; this.jdbcStatement = jdbcStatement; // For now... but see the LoadPlan work; eventually this should just be a ResultSetProcessor. this.loader = buildSpecializedCustomLoader( context ); try { final boolean isResultSet = jdbcStatement.execute(); currentReturnState = buildCurrentReturnState( isResultSet ); } catch (SQLException e) { throw convert( e, "Error calling CallableStatement.getMoreResults" ); } }
private CurrentReturnState buildCurrentReturnState(boolean isResultSet) { int updateCount = -1; if ( ! isResultSet ) { try { updateCount = jdbcStatement.getUpdateCount(); } catch (SQLException e) { throw convert( e, "Error calling CallableStatement.getUpdateCount" ); } } return buildCurrentReturnState( isResultSet, updateCount ); }
private List extractCurrentResults() { try { return extractResults( jdbcStatement.getResultSet() ); } catch (SQLException e) { throw convert( e, "Error calling CallableStatement.getResultSet" ); } }
private List extractCurrentResults(PreparedStatement jdbcStatement) { try { return extractResults( jdbcStatement.getResultSet(), jdbcStatement ); } catch (SQLException e) { throw context.convertException( e, "Error calling CallableStatement.getResultSet" ); } }
protected void prime(PreparedStatement jdbcStatement) { try { final boolean isResultSet = jdbcStatement.execute(); currentReturnState = buildCurrentReturnState( isResultSet, jdbcStatement ); } catch (SQLException e) { throw context.convertException( e, "Error calling CallableStatement.getMoreResults" ); } }
protected Output buildResultSetOutput(Supplier<List> listSupplier) { return new ResultSetOutputImpl( listSupplier ); }
@Override public boolean indicatesMoreOutputs() { return super.indicatesMoreOutputs() || ProcedureOutputsImpl.this.refCursorParamIndex < ProcedureOutputsImpl.this.refCursorParameters.length; }
protected Output buildUpdateCountOutput(int updateCount) { return new UpdateCountOutputImpl( updateCount ); }
protected CurrentReturnState buildCurrentReturnState(boolean isResultSet, int updateCount) { return new CurrentReturnState( isResultSet, updateCount ); }
@Override public Object getSingleResult() { final List results = getResultList(); if ( results == null || results.isEmpty() ) { return null; } else { return results.get( 0 ); } } }
public CustomLoaderExtension( CustomQuery customQuery, QueryParameters queryParameters, SharedSessionContractImplementor session) { super( customQuery, session.getFactory() ); this.queryParameters = queryParameters; this.session = session; entityAliases = interpretEntityAliases( customQuery.getCustomQueryReturns() ); }
return new CustomLoaderExtension( customQuery, context.getQueryParameters(),
public Output getOutput() { if ( rtn == null ) { rtn = buildOutput(); } return rtn; }
protected Output buildResultSetOutput(List list) { return new ResultSetOutputImpl( list ); }