Galera, minha listagem de funcionarios num datatable esta errada porque esta buscando os itens errados numa consulta usando criteria.
Aqui vai meu codigo…
DataTable:
<rich:dataTable id="table" width="100%" var="fc" value="#{funcionarioTableMBean.list}" binding="#{funcionarioTableMBean.objLinha}" onRowMouseOver="this.style.backgroundColor='#CCC'" onRowMouseOut="this.style.backgroundColor='#{a4jSkin.tableBackgroundColor}'">
Metodo getTodosOsfuncionarios(), que é chamado pelo getList() quando no campo de busca nao tem nada digitado…
public String getTodosOsFuncionarios(){
FuncionarioDAO dao = new FuncionarioDAO();
list = dao.list();
HibernateUtil.closeSession();
return null;
}
e finalmente o DAO (o metodo list é do generico, entao vou posta-lo no lugar do funcionarioDAO):
@SuppressWarnings("unchecked")
public List<T> list() {
try {
System.out.println(clazz.getName());
Criteria busca = HibernateUtil.getSession().createCriteria(this.clazz);
System.out.println(busca.list().size());
return busca.list();
} catch (RuntimeException re) {
throw re;
}
}
Na minha tabela Funcionario, tem registrado apenas 2 funcionarios, soh que esta retornando 18…
mais dexa eu explicar como funciona aplicacao… Estou fazendo um quadro de faltas dos funcionarios de uma empresa
Então cada funcionario tem uma lista de PONTOS…
tenho 2 funcionarios na tabela funcionarios … mais esses funcionarios tem varios pontos.
Conforme eu vou adicionando pontos em um funcionario… no datatable pe inserido linhas (o que nao deveria acontecer, ja que na tabela funcionarios continua os 2 funcionarios)…
Então ele esta somando os funcionarios que estao na tabela Funcionario, com os Funcionarios da tabela PONTO.
Alguem me ajuda ?