Hibernate: Selects Adicionais ?Desnecessários?

0 respostas
R

Oi pessoal,

Fiz uma código pequeno para testes, apenas JSF, RichFaces, Hibernate e para minha surpresa (e um certo medinho), utilizando a tag rich:datascroller que faz a paginação, ao ir para a próxima página o Hibernate faz 3 selects, TRÊS!

Resumindo: ao entrar na página ele faz 1 select (normal), ao solicitar a próxima página, ele faz MAIS 3 selects. Creio que seria necessário apenas mais um, ou estou errado?

Vou colocar abaixo meu código para analisarem se existe algum problema na implementação, qualquer sugestão é bem vinda:

ManagedBean: Cliente.java

//...
	@Transient
	private List<Cliente> clientes;

	public List<Cliente> getClientes() {
		DaoFactory daoFactory = new DaoFactory();
		Dao<Cliente> daoCli = daoFactory.getCliente();
				
		clientes = daoCli.listaTudo();
		daoFactory.close();
		return clientes;
	}

	public void setClientes(List<Cliente> clientes) {
		this.clientes = clientes;
	}
//...

resultado-pesquisa.xhtml

//...
<h:form id="meuForm">
	<rich:dataTable value="#{clienteMB.clientes}" var="cli"
		id="tabclientes" rows="13" columnClasses="tabela_resultado_consulta">
		<f:facet name="header">
			<rich:columnGroup>
				<h:column>
					<h:outputText value="Id" />
				</h:column>
				<h:column>
					<h:outputText value="Nome" />
				</h:column>
			</rich:columnGroup>
		</f:facet>
		<h:column>
			<h:outputText value="#{cli.id}" />
		</h:column>
		<h:column>
			<h:outputText value="#{cli.nome}" />
		</h:column>
		<f:facet name="footer">
			<rich:datascroller for="tabclientes" maxPages="4" stepControls="show" fastControls="hide" />
		</f:facet>
	</rich:dataTable>
</h:form>
//...

Saída após solicitar a próxima página:

Hibernate: select this_.id_cliente as id1_0_0_, this_.nome as nome0_0_ from clientes this_
Hibernate: select this_.id_cliente as id1_0_0_, this_.nome as nome0_0_ from clientes this_
Hibernate: select this_.id_cliente as id1_0_0_, this_.nome as nome0_0_ from clientes this_
Criado 23 de outubro de 2010
Respostas 0
Participantes 1