Consulta no hibernate nao funciona

9 respostas
jfnando

Galera, essa parte do meu codigo sempre retorna null, nem chega q executar o commit, vai direto o finally e eu não sei oq é, isso funcionava uma vez, alguem pode me ajudar?

string consulta:= from jfinances.model.bean.Conta

/** Retorna todos os registro da classe no banco de dados */ public static List list(String consulta) { List list = null; Transaction t = null; Query q = null; try { t = beginTransaction(); q = getSessaoDoThread().createQuery( consulta ); System.out.println("DatabaseDao.list Sql: " + q.getQueryString()); list = q.list(); commitTransaction(t); } catch (HibernateException e) { rollbackTransaction(t); System.err.println( "Erro em DatabaseDao.list.HibernateException: " + e.getMessage()); throw new DatabaseDaoException( "Erro ao consultar registros: `" + e.getMessage()); } catch ( Exception e ) { rollbackTransaction(t); System.err.println( "Erro em DatabaseDao.list.Exception: " + e.getMessage()); throw new DatabaseDaoException( "Erro ao consultar registros: "+ e.getMessage()); } finally { return list; } }

9 Respostas

cv1

Como o objeto ta mapeado, e como tao as tabelas no banco?

Alguma das exceptions pipoca?

louds

Porque tem um return no finally???

jfnando

o erro q estoura é esse:

Unknown entity: from jfinances.model.bean.Cont

Mauricio_Linhares

Pronto companheiro, resolvido o problema, você não mapeou esse jfinances.model.bean.Cont.

jfnando

Entao kra, mas estah mapeado, se eu usar o método que eu soh passo a classe

public static List list(Class clazz) { List list = null; Transaction t = null; Criteria c = null; try { t = beginTransaction(); c = getSessaoDoThread().createCriteria( clazz ); list = c.list(); commitTransaction(t); } catch (HibernateException e) { rollbackTransaction(t); System.err.println( "Erro em DatabaseDao.list.HibernateException: " + e.getMessage()); throw new DatabaseDaoException( "Erro ao consultar registros: " + e.getMessage()); } catch ( Exception e ) { rollbackTransaction(t); System.err.println( "Erro em DatabaseDao.list.Exception" + e.getMessage()); throw new DatabaseDaoException( "Erro ao consultar registros: " + e.getMessage()); } finally { return list; } }

funciona, eu nao to entendendo oq tah acontecendo!!!

Mauricio_Linhares

Rapaz, se ele disse que não está mapeado, é porque realmente não está mapeado. Talvez você tenha esquecido de indicar o arquivo do mapeamento em algum lugar ou errado o nome da classe em algum lugar.

Reveja o seu código aí.

jfnando

Ok, mas como q se eu chamar o metodo onde passo a Classe ele busca os dados certinho, é chamado o mesmo metodo

c = getSessaoDoThread ().createCriteria ( clazz );

mas no lugar da clazz eu passo a consulta " from " + clazz.class.getName(),

tem mais alguma ideia doq pode ser???

jfnando

Corrigindo, a chamada é essa:

q = getSessaoDoThread().createQuery( consulta );

a consulta é a mesma de cima e quando eu chamo o método q passo a classe funciona.

Ideias???

jfnando

REsolvido!!!

acreditam q faltava setar o jar ehcahe.jar

pkba, dai nao trazia nada usando o Query.

Valeu galorea pela força!!!

T+

Criado 31 de julho de 2006
Ultima resposta 1 de ago. de 2006
Respostas 9
Participantes 4