Problema com paginação PrimeFaces

É o seguinte; tenho uma consulta, que funciona da seguinte maneira:
Quando o usuário submeter o valor através de um autocomplete do primefaces, deverá retornar uma pesquisa através de um like.
Gostaria de paginar o resultado, mas estou infrentando um problema. Quero faze-lo com primefaes, então, quando uso o scopo View o autocomplete pára de funcionar e a página não é direcionada. se uso requestScoped, o autocomplete funciona, porém não pagina.
e aí o que eu faço?

meu bean:

package com.portal.web;

import java.util.ArrayList;
import java.util.List;

import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;

import com.portal.empresa.Empresa;
import com.portal.empresa.EmpresaRN;

@ManagedBean
@RequestScoped
public class EmpresaBean {

	private Empresa empresa = new Empresa();
	private EmpresaRN empresaRN = new EmpresaRN();
	private List<Empresa> empresas;
	private List<Empresa> pesquisa;

	private String destinoSalvar;

	// Retorna a página para a inserçao de novos valores
	public String novo() {
		this.destinoSalvar = "empresaSucesso";
		this.empresa = new Empresa();
		return "empresa";
	}

	// Persiste objetos
	public String salvar() {
		FacesContext context = FacesContext.getCurrentInstance();
		if (isEmpresaCadastrada(empresa)) {
			FacesMessage facesMessage = new FacesMessage(
					"Digite um nome diferente de empresa, esta já está cadastrada.");
			context.addMessage(null, facesMessage);
			return null;
		}
		empresaRN.salvar(this.empresa);
		return "empresaSucesso";
	}

	// Direciona à pagina editar
	public String editar() {
		return "/admin/empresa";

	}

	// Exclui objetos
	public String excluir() {
		empresaRN.excluir(this.empresa);
		this.empresas = null;
		return null;
	}

	// Autocompleta
	public List<Empresa> autocompleteEmpresa(String query) {
		List<Empresa> queryResults = new ArrayList<Empresa>();
		if (this.empresas == null) {
			this.empresas = empresaRN.complete();
		}
		for (Empresa e : empresas) {
			if (e.getNome().startsWith(query)) {
				queryResults.add(e);
			}
		}
		return queryResults;
	}

	// Lista todos os valores
	public List<Empresa> getLista() {
		if (this.empresas == null) {
			this.empresas = empresaRN.listar();
		}
		return this.empresas;
	}

	// Lista com base nos nomes
	public List<Empresa> buscarPorNome() {
		if (this.empresas == null) {
			String nome = empresa.getNome();
			empresas = empresaRN.buscaPorNome(nome);
		}
		return this.empresas;
	}

	// Verifica se já está cadastrada, caso positivo, valida na view.
	public boolean isEmpresaCadastrada(Empresa empresa) {
		return empresaRN.verificaEmpresa(empresa.getNome());
	}

	// GETERS/SETERSS
	public Empresa getEmpresa() {
		return empresa;
	}

	public void setEmpresa(Empresa empresa) {
		this.empresa = empresa;
	}

	public EmpresaRN getEmpresaRN() {
		return empresaRN;
	}

	public void setEmpresaRN(EmpresaRN empresaRN) {
		this.empresaRN = empresaRN;
	}

	public List<Empresa> getEmpresas() {
		return empresas;
	}

	public void setEmpresas(List<Empresa> empresas) {
		this.empresas = empresas;
	}

	public String getDestinoSalvar() {
		return destinoSalvar;
	}

	public void setDestinoSalvar(String destinoSalvar) {
		this.destinoSalvar = destinoSalvar;
	}

	public List<Empresa> getPesquisa() {
		return pesquisa;
	}

	public void setPesquisa(List<Empresa> pesquisa) {
		this.pesquisa = pesquisa;
	}

}

página:

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:p="http://primefaces.org/ui">
<ui:composition template="/templates/templatePrincipal.xhtml">
	<ui:define name="corpo">
		<h:head>
			<title>Luziânia OnLine</title>
		</h:head>
		<h:body>
			<f:view>
				<p:growl id="messages" autoUpdate="true" />
				<h:form>
					<div id="campos">
						<p:autoComplete id="complete" value="#{empresaBean.empresa}"
							var="empresa" completeMethod="#{empresaBean.autocompleteEmpresa}"
							itemLabel="#{empresa.nome}" itemValue="#{empresa}"
							onkeyup="this.value = this.value.toUpperCase();" maxResults="9"
							size="82" converter="Converter" required="true"
							requiredMessage="Digite um nome para pesquisa.">
						</p:autoComplete>
					</div>
					<div id="botaopesq">
						<h:commandLink actionListener="#{empresaBean.buscarPorNome}"
							title="Pesquisar" value="#{nome}" action="pesquisa">
							<h:graphicImage library="images" name="botao.png" width="118"
								height="27" style="border:0" />
							<f:setPropertyActionListener target="#{empresaBean.empresa}"
								value="#{empresa.nome}" />
						</h:commandLink>
					</div>
				</h:form>
			</f:view>
		</h:body>
	</ui:define>
</ui:composition>
</html>