Erro em consulta nativa Hibernate para gerar relatório

8 respostas
F

Pessoal eu estou tentando gerar um relatório com o jasperReport.

Usei um determinado componente que um colega nosso Criou o jasperMaker. só q quando estou executando minha consulta ele dá um erro:

MÉTODO:

public Download imprimir(){
		Map<String, Object> parametros = new HashMap<String, Object>();
		SQLQuery query =  sessao.createSQLQuery("SELECT N.id, " +
												   "N.bimestre1, " +
												   "N.bimestre2, " +
												   "N.bimestre3, " +
												   "N.bimestre4, " +
												   "N.aluno_id, " +
												   "N.materia_id, " +
												   "T.nome as turma " +
												   /*"upper(A.NOME) as \"nome_aluno\", " +
												   "M.NOME as \"materia\", " +
												   "round(((N.bimestre1 + N.bimestre2 + N.bimestre3 + N.bimestre4) / 4),2) as \"MEDIA\" " +*/
												   "FROM NOTA N " +
												   "INNER JOIN ALUNO A ON (A.ID = N.aluno_id) " +
												   "INNER JOIN TURMA T ON (T.id = A.turma_id) " +
												   "INNER JOIN MATERIA M ON (m.id = n.materia_id) " +
												   "where n.aluno_id = :aluno_id");
		query.addEntity("N", Nota.class);
		query.addEntity("T" ,Turma.class);
		/*query.addEntity("A" ,Aluno.class);
		query.addEntity("M",Materia.class);*/
		query.setLong("aluno_id", usuarioWeb.getAluno().getId());
		List consulta = query.list();
		parametros.put("aluno_id", usuarioWeb.getAluno().getId());
		return jasperMaker.makePdf("boletim.jasper", consulta, "boletim.pdf", true, parametros);
	}

O erro é esse:

java.sql.SQLException: Column nome not found.

com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)

com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)

com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926)

com.mysql.jdbc.ResultSetImpl.findColumn(ResultSetImpl.java:1093)

com.mysql.jdbc.ResultSetImpl.getString(ResultSetImpl.java:5488)

org.hibernate.type.StringType.get(StringType.java:41)

org.hibernate.type.NullableType.nullSafeGet(NullableType.java:184)

org.hibernate.type.NullableType.nullSafeGet(NullableType.java:173)

org.hibernate.type.AbstractType.hydrate(AbstractType.java:105)

org.hibernate.persister.entity.AbstractEntityPersister.hydrate(AbstractEntityPersister.java:2114)

org.hibernate.loader.Loader.loadFromResultSet(Loader.java:1404)

org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:1332)

org.hibernate.loader.Loader.getRow(Loader.java:1230)

org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:603)

org.hibernate.loader.Loader.doQuery(Loader.java:724)

org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:259)

org.hibernate.loader.Loader.doList(Loader.java:2232)

org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2129)

org.hibernate.loader.Loader.list(Loader.java:2124)

org.hibernate.loader.custom.CustomLoader.list(CustomLoader.java:312)

org.hibernate.impl.SessionImpl.listCustomQuery(SessionImpl.java:1723)

org.hibernate.impl.AbstractSessionImpl.list(AbstractSessionImpl.java:165)

org.hibernate.impl.SQLQueryImpl.list(SQLQueryImpl.java:175)

br.com.academico.controllers.AlunoController.imprimir(AlunoController.java:95)

sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

java.lang.reflect.Method.invoke(Unknown Source)

br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:61)

br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)

br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)

br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61)

br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)

br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61)

br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)

br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)

br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)

br.com.caelum.vraptor.util.hibernate.HibernateTransactionInterceptor.intercept(HibernateTransactionInterceptor.java:48)

br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)

br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)

br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:83)

br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)

br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)

br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:48)

br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)

br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)

br.com.caelum.vraptor.interceptor.ExceptionHandlerInterceptor.intercept(ExceptionHandlerInterceptor.java:71)

br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)

br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)

br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)

br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)

br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:69)

br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)

br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)

br.com.caelum.vraptor.core.EnhancedRequestExecution.execute(EnhancedRequestExecution.java:23)

br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:92)

br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:58)

br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:89)

Ai eu percebi uma coisa se eu tirar o “as turma” e deixar apenas o campo T.nome ele dá “certo” pq ainda me dá um erro de relatório… mas não me dá mais o erro de query.

Alguém já passou por isso?

8 Respostas

F

alguém?

ViniGodoy

Ao postar tópicos, por favor, não use LETRAS MAIUSCULAS NOS TÍTULOS.

Também evite “upar” tópicos, principalmente com tão pouco tempo de existência (apenas 30 minutos depois de abri-lo).

guivirtuoso

java.sql.SQLException: Column ‘nome’ not found.

"T.nome as turma " +

Na tua entidade Turma tem o atributo nome ?

F

Tem sim…

guivirtuoso

Cara,

Experimenta comentar o trecho do codigo que adiciona o T.nome no teu sessao.createSQLQuery p/ ver se ao menos roda.

E mais… tente dar um Clean no projeto… e um Clean no diretorio temporario do teu servidor java :wink:

F

Roda sim…

se eu tirar o as turma já roda…

guivirtuoso

Entao maravilha… tenta montar essa tua query ai de outra forma… acho q usando as criterias do Hibernate ficaria mais elegante… mas enfim… já sabes que o problema é com tua entidade…

Coloca ai os fontes das entidades envolvidas… Nota, Aluno, Turma, Materia, p/ ver se nao tem algo de estranho no meio…

maior_abandonado

tem certeza disso? lembrando que é sobre a entidade, ou seja, a classe java, o pojo do hibernate e não a tabela (insisto por que o erro diz justamente que esse atributo não existe).

Criado 19 de setembro de 2011
Ultima resposta 19 de set. de 2011
Respostas 8
Participantes 4