Ajuda no CRITERIA, Buscando dados errados = erro no datatable - JSF  XML
Índice dos Fóruns » Persistência: Hibernate, JPA, JDBC e outros
Autor Mensagem
sandro.csimas
JavaBaby

Membro desde: 26/01/2010 01:30:44
Mensagens: 99
Offline

Galera, minha listagem de funcionarios num datatable esta errada porque esta buscando os itens errados numa consulta usando criteria.
Aqui vai meu codigo..

DataTable:


Metodo getTodosOsfuncionarios(), que é chamado pelo getList() quando no campo de busca nao tem nada digitado..



e finalmente o DAO (o metodo list é do generico, entao vou posta-lo no lugar do funcionarioDAO):


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 ?
sandro.csimas
JavaBaby

Membro desde: 26/01/2010 01:30:44
Mensagens: 99
Offline

aqui esta o HQL gerado:



ele ta trazendo 16 por causa do outer join
alguem sabe como tratar isso ?
quero que ele pegue apenas os funcionarios da tabela funcionario, ou seja, 2
sandro.csimas
JavaBaby

Membro desde: 26/01/2010 01:30:44
Mensagens: 99
Offline

é.. realmente nao consigo entender
ninguem ?
TheKill
GUJ Master
[Avatar]

Membro desde: 29/09/2006 18:06:30
Mensagens: 1142
Localização: Araranguá - SC
Offline

uma pergunta.

Criteria busca = HibernateUtil.getSession().createCriteria(this.clazz);

thiz.clazz ???

é isso mesmo??


att. Jonas

Pessoal se foi respondido com eficiência...

Nao custa finalizar o topico ^^ [RESOLVIDO]

Isso ai, valeu xD

GrupoJavaSC

[Email] [MSN]
sandro.csimas
JavaBaby

Membro desde: 26/01/2010 01:30:44
Mensagens: 99
Offline

isso mesmo,
é porque esse é o generico

Quando eu instancio um FuncionarioDAO, este chama o construtor super, passando como parametro a classe Funcionario
que no caso eh jogado nessa variavel clazz do tipo Class.
sandro.csimas
JavaBaby

Membro desde: 26/01/2010 01:30:44
Mensagens: 99
Offline

ninguem ?
Sefo
JavaChild
[Avatar]

Membro desde: 18/08/2006 10:02:28
Mensagens: 102
Offline

Se importa de colocar o código da sua entidade funcionario?

Até aqui o código parece estar correto.

NY GIANTS!!!!

WAR BIG BLUES!!!!

sandro.csimas
JavaBaby

Membro desde: 26/01/2010 01:30:44
Mensagens: 99
Offline

Não estou em casa agora.. mais posso dizer resumidamente como esta, ai mais tarde coloco tudo certo

A classe Funcionario possui uma lista de Pontos num relacionamento OneToMany
mappedby=funcionario
fetch=Eager

A classe Ponto possui um atributo funcionario num relacionamento ManyToOne
o fetch tambem é eager

Quando eu adiciono um ponto, ele coloca o ponto certo, mais ta adicionando o funcionario repetido no datatable
Sendo que na tabela continuam os 2 funcionarios
sandro.csimas
JavaBaby

Membro desde: 26/01/2010 01:30:44
Mensagens: 99
Offline

pronto, aqui vai:




sandro.csimas
JavaBaby

Membro desde: 26/01/2010 01:30:44
Mensagens: 99
Offline

Estou com esse problema ate hj.. alguem tem ideia ?
sandro.csimas
JavaBaby

Membro desde: 26/01/2010 01:30:44
Mensagens: 99
Offline

Troquei o Fetch.EAGER por fetch.LAZY na tabela Funcionario (Lista<Ponto>, dai fica correto..
mais eu perco toda a lista de pontos do funcionario, tem alguma maneira disso nao acontecer?

This message was edited 1 time. Last update was at 25/03/2010 13:14:19

 
Índice dos Fóruns » Persistência: Hibernate, JPA, JDBC e outros
Ir para:   
Powered by JForum 2.1.8 © JForum Team