Hibernate + Mysql

7 respostas
monike

Boa Tarde Galera!
Não estou conseguindo executar minha query nativa no hibernate,porém já testei a mesma query no meu banco de dados local e dá certo.
O erro é o seguinte: (JDBCExceptionReporter.java:101) - Column ‘’ not found.

public Collection obterMes() throws AplicacaoException{

Session session = SessionFactoryUtil.getInstance().getCurrentSession();

Collection lista = null;

try {

tx = session.beginTransaction();
StringBuffer strQuery = new StringBuffer(" SELECT DISTINCT EXTRACT(MONTH FROM DH_SAIDA_EFETIVA)AS DH_SAIDA_EFETIVA FROM srv_requisicao  ORDER BY DH_SAIDA_EFETIVA ASC ");
		SQLQuery sqlQuery = session.createSQLQuery(strQuery.toString()); 
		 
		lista = (Collection<Requisicao>) sqlQuery.list();
		tx.commit();

	} catch (Exception e) {
		throw new AplicacaoException(e.getMessage(), e);
	}

	return lista;
}

7 Respostas

Tiburcio_Mancha

Da uma olhada em todas as propriedades da entidade e veja se estão batendo com os nomes dos campos que vc utilizou na query…tb de uma olhada no mapeamneto das propriedades com as colunas da tabela.

LPJava

observe que o erro diz que nao encontrou a coluna, como o colega falou se vc tem um bean que o nome da coluna eh diferente, vc tem que ir em property do seu arquivo .xml do hibernate e adicionar o valor correto do atributo column.
Tem um post com algo parecido veja neste link

monike

obrigada pelas respostas meninos.Mas se eu estou usando uma sql nativa ela nao tem que estar com os nomes iguais ao da minha tabela e nao a que eu dei no meu bean?

Obrigada.

JonathanSSantos

poste sua classe e sua unidade de persistencia!

monike
Galera consegui! Muito obrigada pela ajuda de todos se alguém passar pelo mesmo problema vai ai uma dica.
public Collection<Requisicao> obterMes() throws AplicacaoException {
		Session session = SessionFactoryUtil.getInstance().getCurrentSession();
		List<Requisicao> lista;
		try {
			tx = session.beginTransaction();		
			lista = session.createQuery(" SELECT DISTINCT  EXTRACT(MONTH FROM dataHoraSaidaEfetiva) from Requisicao ORDER BY dataHoraSaidaEfetiva ASC ").list(); 
			tx.commit();
			
		} catch (RuntimeException e) {
			throw new AplicacaoException(e.getMessage(), e);
		}
		return (Collection<Requisicao>) lista;
	}
LPJava

monike:
obrigada pelas respostas meninos.Mas se eu estou usando uma sql nativa ela nao tem que estar com os nomes iguais ao da minha tabela e nao a que eu dei no meu bean?

Obrigada.

olha nao eh boa pratica ter nomes diferentes, eu acho que dificulta muito a leitura e principalmente a manutencao se for uma aplicacao pequena as vezes ainda dar para criar relacao, porem quando eh algo mais complexo o bixo pega, vc pode ate ter uma diferenca basica entre o nome do bean com a da column mas ser muitoo diferente ai complica.

monike

Valew pela dica, tem razão!
Brigadaum.

Bjsss

Criado 14 de dezembro de 2009
Ultima resposta 15 de dez. de 2009
Respostas 7
Participantes 4