Boa tarde galera, estou desenvolvendo um projeto com JSF, Hibernate, JPA e Primefaces, onde tenho uma tabela que lista os dados dos clientes, nessa tabela em cada linha tenho um botão que gera o relatório com os dados do cliente selecionado, ao clicar nesse botão é aberta uma nova aba no browser onde o relatório é gerado, o problema acontece quando eu tento gerar vários relatórios de clientes, eu notei que alguns relatórios vem repetido, geralmente o que repete é o primeiro que foi gerado, e percebi que o erro de repetição não acontece quando eu gero um relatório e dou um refresh na página, ao gerar o relatório o código do cliente é passado via parâmetro, é como se o parâmetro não estivesse atualizando mas fiz um teste debugando e os dados estão passando corretamente.
Como eu poderia resolver esse problema?
Método que gera o relatório:
public void emitirRelatorio(Cliente cliente) throws JRException, FileNotFoundException {
String caminho = "/WEB-INF/relatorios/cliente.jasper";
context = FacesContext.getCurrentInstance();
ServletContext servletContext = (ServletContext) context.getExternalContext().getContext();
caminhoRelatorio = servletContext.getRealPath(caminho);
String nomeArquivo = "cliente";
HashMap<String, Object> parametros = new HashMap<>();
parametros.put("codigoCliente", cliente.getCodigo());
GeraRelatorio relatorio = new GeraRelatorio();
relatorio.getRelatorio(nomeArquivo, parametros, caminhoRelatorio, byteArrayOutputStream, context, con);
}
Botão que chama o relatório.
<p:commandButton icon="fa fa-file-pdf-o" title="Gerar relatorio cliente"
action="#{clienteBean.emitirRelatorio(listaCliente)}" ajax="false" onclick="this.form.target='_blank'"/>