IReport X Hibernate - Classes com relacionamento não funcionam

3 respostas
andreluis

Foi criado um relatório usando hibernate e ireport , funcionando para classes sem relacionamento, mais agora que tenho uma classe com relacionamento e da erro no relacionamento , como posso solucionar este problema?
Classe Dao

@SuppressWarnings("unchecked")
	public List<Acervo> listaTudo() {
		return this.session.createCriteria(Acervo.class).list();
	}
Classe controller
public Download geraRelAcervo() {
		return jasperMaker.makePdf("relAcervo.jasper",
				dao.listaTudo(),//utilizo o resultado do createCriteria do hibernate
				"relatorioteste.pdf", false);
	}

Classe acervo

package br.com.biblioteca.entidades.cadastros;

import java.util.Date;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
@Entity
public class Acervo {
	
	@Id
	@GeneratedValue
	private  Long id;
	private String titulo	;
	private String subTitulo;
	@ManyToOne
	private Editora editora;
	@ManyToOne
	private Autor autor;
	@ManyToOne
	private ClassificacaoLiteraria classificacaoLiteraria;
	@ManyToOne
	private Genero genero;
	private String palavrasChave;
	@ManyToOne
	private Idiomas idioma;
	private String observacao;
	private int anoPublicacao;
	private String ISBN;
	private char status;
	@ManyToOne
	private DisponibilidadeAcervo disponibilidadeAcervo;
	private String localizacao;
	private String assunto;
	private String cutter;
	private String edicao;
	private String numeroPagina;
	private String informacoesFisicas;
	private String indice;
	@ManyToOne
	private Biblioteca biblioteca;
	private Date dataEntrada;
	

	public Date getDataEntrada() {
		return dataEntrada;
	}
	public void setDataEntrada(Date dataEntrada) {
		this.dataEntrada = dataEntrada;
	}
	public  Long getId() {
		return id;
	}
	public  void setId(Long id) {
		this.id = id;
	}
	public  String getTitulo() {
		return titulo;
	}
	public  void setTitulo(String titulo) {
		this.titulo = titulo;
	}
	public  String getSubTitulo() {
		return subTitulo;
	}
	public  void setSubTitulo(String subTitulo) {
		this.subTitulo = subTitulo;
	}
	public  Editora getEditora() {
		return editora;
	}
	public  void setEditora(Editora editora) {
		this.editora = editora;
	}
	public  Autor getAutor() {
		return autor;
	}
	public  void setAutor(Autor autor) {
		this.autor = autor;
	}
	public  ClassificacaoLiteraria getClassificacaoLiteraria() {
		return classificacaoLiteraria;
	}
	public  void setClassificacaoLiteraria(
			ClassificacaoLiteraria classificacaoLiteraria) {
		this.classificacaoLiteraria = classificacaoLiteraria;
	}
	public  Genero getGenero() {
		return genero;
	}
	public  void setGenero(Genero genero) {
		this.genero = genero;
	}
	public  String getPalavrasChave() {
		return palavrasChave;
	}
	public  void setPalavrasChave(String palavrasChave) {
		this.palavrasChave = palavrasChave;
	}
	public  Idiomas getIdioma() {
		return idioma;
	}
	public  void setIdioma(Idiomas idioma) {
		this.idioma = idioma;
	}
	public  String getObservacao() {
		return observacao;
	}
	public  void setObservacao(String observacao) {
		this.observacao = observacao;
	}
	public  int getAnoPublicacao() {
		return anoPublicacao;
	}
	public  void setAnoPublicacao(int anoPublicacao) {
		this.anoPublicacao = anoPublicacao;
	}
	public  String getISBN() {
		return ISBN;
	}
	public  void setISBN(String iSBN) {
		ISBN = iSBN;
	}
	public  char getStatus() {
		return status;
	}
	public  void setStatus(char status) {
		this.status = status;
	}
	public  DisponibilidadeAcervo getDisponibilidadeAcervo() {
		return disponibilidadeAcervo;
	}
	public  void setDisponibilidadeAcervo(
			DisponibilidadeAcervo disponibilidadeAcervo) {
		this.disponibilidadeAcervo = disponibilidadeAcervo;
	}
	public  String getLocalizacao() {
		return localizacao;
	}
	public  void setLocalizacao(String localizacao) {
		this.localizacao = localizacao;
	}
	public  String getAssunto() {
		return assunto;
	}
	public  void setAssunto(String assunto) {
		this.assunto = assunto;
	}
	public  String getCutter() {
		return cutter;
	}
	public  void setCutter(String cutter) {
		this.cutter = cutter;
	}
	public  String getEdicao() {
		return edicao;
	}
	public  void setEdicao(String edicao) {
		this.edicao = edicao;
	}
	public  String getNumeroPagina() {
		return numeroPagina;
	}
	public  void setNumeroPagina(String numeroPagina) {
		this.numeroPagina = numeroPagina;
	}
	public  String getInformacoesFisicas() {
		return informacoesFisicas;
	}
	public  void setInformacoesFisicas(String informacoesFisicas) {
		this.informacoesFisicas = informacoesFisicas;
	}
	public  String getIndice() {
		return indice;
	}
	public  void setIndice(String indice) {
		this.indice = indice;
	}
	public Biblioteca getBiblioteca() {
		return biblioteca;
	}
	public  void setBiblioteca(Biblioteca biblioteca) {
		this.biblioteca = biblioteca;
	}
}

O erro :
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
br.com.caelum.vraptor.InterceptionException: an exception was raised while executing resource method
br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:86)
br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
br.com.caelum.vraptor.interceptor.ParametersInstantiatorInterceptor.intercept(ParametersInstantiatorInterceptor.java:77)
br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:42)
br.com.caelum.vraptor.core.InstantiatedInterceptorHandler.execute(InstantiatedInterceptorHandler.java:47)
br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
br.com.caelum.vraptor.interceptor.InterceptorListPriorToExecutionExtractor.intercept(InterceptorListPriorToExecutionExtractor.java:46)
br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:80)
br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:67)
br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
br.com.caelum.vraptor.core.DefaultRequestExecution.execute(DefaultRequestExecution.java:70)
br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:92)
br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:56)
br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:89)
root cause
java.lang.RuntimeException: net.sf.jasperreports.engine.JRException: Error retrieving field value from bean : autor_id
br.com.biblioteca.componente.JasperMaker.makePdf(JasperMaker.java:116)
br.com.biblioteca.componente.JasperMaker.makePdf(JasperMaker.java:65)
br.com.biblioteca.controller.cadastros.AcervoController.geraRelAcervo(AcervoController.java:61)
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:57)
br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
br.com.caelum.vraptor.interceptor.ParametersInstantiatorInterceptor.intercept(ParametersInstantiatorInterceptor.java:77)
br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:42)
br.com.caelum.vraptor.core.InstantiatedInterceptorHandler.execute(InstantiatedInterceptorHandler.java:47)
br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
br.com.caelum.vraptor.interceptor.InterceptorListPriorToExecutionExtractor.intercept(InterceptorListPriorToExecutionExtractor.java:46)
br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:80)
br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:67)
br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
br.com.caelum.vraptor.core.DefaultRequestExecution.execute(DefaultRequestExecution.java:70)
br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:92)
br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:56)
br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:89)
root cause
net.sf.jasperreports.engine.JRException: Error retrieving field value from bean : autor_id
net.sf.jasperreports.engine.data.JRAbstractBeanDataSource.getBeanProperty(JRAbstractBeanDataSource.java:123)
net.sf.jasperreports.engine.data.JRAbstractBeanDataSource.getFieldValue(JRAbstractBeanDataSource.java:96)
net.sf.jasperreports.engine.data.JRBeanCollectionDataSource.getFieldValue(JRBeanCollectionDataSource.java:100)
net.sf.jasperreports.engine.fill.JRFillDataset.setOldValues(JRFillDataset.java:823)
net.sf.jasperreports.engine.fill.JRFillDataset.next(JRFillDataset.java:787)
net.sf.jasperreports.engine.fill.JRBaseFiller.next(JRBaseFiller.java:1474)
net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:125)
net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:938)
net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:860)
net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:84)
net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:624)
net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:540)
br.com.biblioteca.componente.JasperMaker.makePdf(JasperMaker.java:97)
br.com.biblioteca.componente.JasperMaker.makePdf(JasperMaker.java:65)
br.com.biblioteca.controller.cadastros.AcervoController.geraRelAcervo(AcervoController.java:61)
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:57)
br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
br.com.caelum.vraptor.interceptor.ParametersInstantiatorInterceptor.intercept(ParametersInstantiatorInterceptor.java:77)
br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:42)
br.com.caelum.vraptor.core.InstantiatedInterceptorHandler.execute(InstantiatedInterceptorHandler.java:47)
br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
br.com.caelum.vraptor.interceptor.InterceptorListPriorToExecutionExtractor.intercept(InterceptorListPriorToExecutionExtractor.java:46)
br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:80)
br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:67)
br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
br.com.caelum.vraptor.core.DefaultRequestExecution.execute(DefaultRequestExecution.java:70)
br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:92)
br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:56)
br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:89)
root cause
java.lang.NoSuchMethodException: Unknown property 'autor_id' on class 'class br.com.biblioteca.entidades.cadastros.Acervo'
org.apache.commons.beanutils.PropertyUtilsBean.getSimpleProperty(PropertyUtilsBean.java:1322)
org.apache.commons.beanutils.PropertyUtilsBean.getNestedProperty(PropertyUtilsBean.java:770)
org.apache.commons.beanutils.PropertyUtilsBean.getProperty(PropertyUtilsBean.java:846)
org.apache.commons.beanutils.PropertyUtils.getProperty(PropertyUtils.java:426)
net.sf.jasperreports.engine.data.JRAbstractBeanDataSource.getBeanProperty(JRAbstractBeanDataSource.java:111)
net.sf.jasperreports.engine.data.JRAbstractBeanDataSource.getFieldValue(JRAbstractBeanDataSource.java:96)
net.sf.jasperreports.engine.data.JRBeanCollectionDataSource.getFieldValue(JRBeanCollectionDataSource.java:100)
net.sf.jasperreports.engine.fill.JRFillDataset.setOldValues(JRFillDataset.java:823)
net.sf.jasperreports.engine.fill.JRFillDataset.next(JRFillDataset.java:787)
net.sf.jasperreports.engine.fill.JRBaseFiller.next(JRBaseFiller.java:1474)
net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:125)
net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:938)
net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:860)
net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:84)
net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:624)
net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:540)
br.com.biblioteca.componente.JasperMaker.makePdf(JasperMaker.java:97)
br.com.biblioteca.componente.JasperMaker.makePdf(JasperMaker.java:65)
br.com.biblioteca.controller.cadastros.AcervoController.geraRelAcervo(AcervoController.java:61)
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:57)
br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
br.com.caelum.vraptor.interceptor.ParametersInstantiatorInterceptor.intercept(ParametersInstantiatorInterceptor.java:77)
br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:42)
br.com.caelum.vraptor.core.InstantiatedInterceptorHandler.execute(InstantiatedInterceptorHandler.java:47)
br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
br.com.caelum.vraptor.interceptor.InterceptorListPriorToExecutionExtractor.intercept(InterceptorListPriorToExecutionExtractor.java:46)
br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:80)
br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:67)
br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
br.com.caelum.vraptor.core.DefaultRequestExecution.execute(DefaultRequestExecution.java:70)
br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:92)
br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:56)
br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:89)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.18 logs.
________________________________________

3 Respostas

andreluis

Descobri por meio de outro post que ele não encontra o autor_id pois ele é um relacionamento entre as classes, o problema é, como gerar um relatorio usando o hibernate trazendo os campos, o negocio é que mesmo usando selectQuery, ele acusa o autor_id inexistente.

jah faz muitos dias batalhando em cima desse relatorio e até agora nenhuma luz :?

rdmardegam

Amigo, você não está declarando no seu template do Ireport o atributo autor_id. Mas o mesmo não existe na classe “Acervo”, oque existe é o “id”, tende mudar no Ireport.

Veja se realmente é necessario exibir o id no relatorio.

andreluis

Olá amigo, o negocio é que nem tem no meu relatorio este autor_id, oque eu fiz foi colocar no sql do report select * from acervo, no ireport funciona mas qndo mando exibir qualquer classe q possua relacionamento não funciona, se for uma classe normal sem relacionamento funciona normalmente, mas como meu sistema é de biblioteca a maioria das classes principais possuem relacionamento, e necessito fazer estes relatorios, jah tentei colocar somente 2 campos select campo1,campo2 mas mesmo assim o hibernate insiste em acusar erro no relacionamento…

:S

obrigado

Criado 11 de junho de 2010
Ultima resposta 11 de jun. de 2010
Respostas 3
Participantes 2