Problema relatório com relacionamento ?jasperMaker?

14 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.
________________________________________

14 Respostas

Guevara

Olá!
O erro é este:

root cause
net.sf.jasperreports.engine.JRException: Error retrieving field value from bean : autor_id

Dê uma conferida nessa id do autor no banco.
Experimente tb criar um construtor vazio e um preenchido na classe de entidade.
Abraço!

Lucas_Cavalcanti

Error retrieving field value from bean : autor_id

vc deve ter algo como acervo.autor_id no seu relatório

tente trocar pra algo como acervo.autor.id

andreluis

Eu não to passo nem um parâmetro para o ireport no relatório , penas um select simples. E foi colocado 2 campos, pois quando uso este mesmo métodos em outras classes ele funciona quando coloco ela na classe Acervo, ele da este erro onde o atributo (private Autor autor) e do tipo de uma outra classe ele da este erro, como se não conseguir - se vincular varia tabelas ao mesmo tempo.

Lucas_Cavalcanti

(eu não manjo qse nada de jasper reports, então eu posso estar falando besteira)

o que tah no arquivo q vc mandou parece uma query SQL, com as colunas da tabela, e vc tah tentando mapear pra uma classe java…

ou vc tem que usar o jasper junto com a JPA pra fazer o link, ou vc vai ter que ter uma classe que tem exatamente as colunas da tabela acervo…

andreluis

Bom dia Lucas, obrigado pelas dicas, alguns passos destes já tentei, o que está me deixando mais confuso, e acabando com meus nervos (rs) é que o mesmo método já funcionava para outras classes, por exemplo a classe produtos da fj-28 onde foi que estou me baseando, dai utilizei em mais algumas classes desse meu novo projeto, mas todas elas sem relacionamento, isso que me deixa confuso, como que outras funcionam e essa só pq tem relacionamento não funciona, eu estou na aprendizagem geral ainda, e estou tendo que terminar um projeto para a faculdade, então não está sobrando tempo para se expecializar em uma certa area (hibernate,vraptor) então estou tentando levar e aprendendo aos trancos e barrancos, se poderem me auxiliar nessa parte serei grato a todos.

@Lucas Cavalcanti
o que tah no arquivo q vc mandou parece uma query SQL, com as colunas da tabela, e vc tah tentando mapear pra uma classe java…

ou vc tem que usar o jasper junto com a JPA pra fazer o link, ou vc vai ter que ter uma classe que tem exatamente as colunas da tabela acervo…

Sim, para desenhar o relatório eu informo o sql dentro do próprio, será que é por isso que está dando o problema? pois no relatorio utilizo

dai quando o hibernate usa o dao.listatudo(), ele teoricamente corresponde ao mesmo código não?

Não sei se da para entender oque quero passar, mas mesmo assim obrigado.

Lucas_Cavalcanti

não creio que seja a mesma coisa… o select pode ser o mesmo, mas o resultado eh tratado diferente…

qdo vc usa o select * from acervo, ele retorna um ResultSet, e tenta preencher o acervo com os fields que vc declarou nas tags … o problema eh que não existe o field autor_id (que vem no resultSet) na classe Acervo… o que existe eh o relacionamento do hibernate… vc deveiria usar algo específico da jpa, ou tentar configurar algo a mais na tag field

andreluis

Olá Lucas, obrigado novamente

@Lucas Cavalcanti
qdo vc usa o select * from acervo, ele retorna um ResultSet, e tenta preencher o acervo com os fields que vc declarou nas tags … o problema eh que não existe o field autor_id (que vem no resultSet) na classe Acervo… o que existe eh o relacionamento do hibernate… vc deveiria usar algo específico da jpa, ou tentar configurar algo a mais na tag field

Hmm, agora eu acho que entendi, então quando utilizo o método listaTudo() ele não retornar autor_id, e sim a classe Autor? é isso? se for isso como eu poderia contornar não entendo oque é jpa, :oops: como falei algumas coisas e siglas não sei ainda, será que eu poderia utilizar um select * from usando o hibernate? ~estou meio perdido nessa história rs…

obrigado

Lucas_Cavalcanti

isso, vc tem que fazer esse select usando o hibernate, de algum jeito… não sei como fazer isso no jasper…

jpa é a Java Persistence API, uma especificação… o hibernate implementa ela

andreluis

Invés de usar o lista tudo coloquei um usei o metodo “mostra a baixa” e mesmo assim não deu certo. Da um novo erro agora . vc pode me ajusar?

public List<Acervo> relAcervo(Long codigo) { return this.session.createSQLQuery("select a.titulo,a.subtitulo from acervo a") //.setParameter("id", codigo) .list(); }

E o erro e :

HTTP Status 500 -


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 : 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:54)

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 : 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:54)

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 id on class 'class [Ljava.lang.Object;'

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:54)

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.
Lucas_Cavalcanti

qdo vc faz: select a.titulo,a.subtitulo from acervo a o hibernate retorna uma List<Object[]>, não uma lista de acervo…

algum motivo pra usar SQLQuery ao inves de Query?

andreluis

nao e nem um motivo , so que precisso fazer um relatorio de Acervos passando parametro para consulta, e como os atributos destas classe possie dependencia ela nao esta funcionando.mais nao a nem um motivo para utilizacao de SQLQuery sao apenas tentativas.

kivervinicius

André será que para isso não daria para retornar um connection do hibernate e invez de utilizar o metodo listaTudo, e utilizar collection para datasource, passar ao jaspermaker uma conn,

JasperPrint impressao = JasperFillManager.fillReport(pathJasper
+ "RelLivros.jasper", parametros, con);

Lucas ou Lavieri, corrija se eu estar errado, abração

Lucas_Cavalcanti

se vc passa uma connection e faz via jdbc se eu não me engano… aí vai dar o mesmo erro… se vc der a collection, vc não precisa fazer a query no banco, pq vc jah tem os dados, é só usar

J

Nao entendi muito o que vc esta fazendo se vc esta fazendo uma sql desntro do jasper report tem que entender uma coisa e esta passando um objeto com dados para gerar o relatorio tem que fazer da seguinte forma por exemplo no jasper a sql tem q ficar com mesmo nome dos campos da entidade exemplo

JASPER:

select a.autor as autor_id from Acervo a

isso faz com que objeto + sql jasper para se entenderem entre si.

Ok

Criado 9 de junho de 2010
Ultima resposta 17 de jun. de 2010
Respostas 14
Participantes 5