code: private void handle(ExecuteContext context, SQLExceptionTranslator translator,
  			SQLException exception) {
  		DataAccessException translated = translate(context, translator, exception);
  		if (exception.getNextException() == null) {
  			context.exception(translated);
  		}
  		else {
  			logger.error("Execution of SQL statement failed.", translated);
  		}
  	}
docs: Handle a single exception in the chain. SQLExceptions might be nested multiple
  levels deep. The outermost exception is usually the least interesting one ("Call
  getNextException to see the cause."). Therefore the innermost exception is
  propagated and all other exceptions are logged.
  @param context the execute context
  @param translator the exception translator
  @param exception the exception