iReport e Hibernate

Alguém sabe como fazer um rel simples com iReport e Hibernate ???

Já montei um rel simples que lista registros de um cadastro de produto…

já consegui colocar em uma classe gerar um pdf ou um preview com jdbc

O problema é quando trago uma consulta do hibernate…tentei este código


List<Produto> lista = new GenericDAO<Produto>(s, Produto.class).lista(" where descricaoProduto like '%" + 'P' + "%' ");

Map parametros = new HashMap();
parametros.put("parametro1","valor1");

        	JasperReport jasperReport = JasperManager.loadReport("RelProduto.jasper");
		JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(lista);
		JasperPrint jasperPrint = JasperManager.fillReport(jasperReport, parametros, ds);
		JasperManager.printReportToPdfFile(jasperPrint, "RelProduto.pdf");

Mas está dando a seguinte msg:

log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).
log4j:WARN Please initialize the log4j system properly.
pesquisando algum produto…
Hibernate: select produto0_.idProduto as idProduto, produto0_.descricaoProduto as descrica2_0_, produto0_.nome as nome0_, produto0_.preco as preco0_, produto0_.IDTIPOPRODUTO as IDTIPOPR5_0_ from Produto produto0_ where (descricaoProduto like ‘%P%’)
Exception in thread “main” java.lang.NoSuchMethodException: Unknown property ‘IDPRODUTO’
at org.apache.commons.beanutils.PropertyUtils.getSimpleProperty(PropertyUtils.java:1175)
at org.apache.commons.beanutils.PropertyUtils.getNestedProperty(PropertyUtils.java:772)
at org.apache.commons.beanutils.PropertyUtils.getProperty(PropertyUtils.java:801)
at net.sf.jasperreports.engine.data.JRBeanCollectionDataSource.getFieldValue(JRBeanCollectionDataSource.java:114)
at net.sf.jasperreports.engine.fill.JRBaseFiller.next(JRBaseFiller.java:872)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:116)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:622)
at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:116)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:428)
at net.sf.jasperreports.engine.JasperManager.fillReport(JasperManager.java:836)
at br.com.empresa.modelo.TesteRel.main(TesteRel.java:51)

NESTED BY :
net.sf.jasperreports.engine.JRException: Error retrieving field value from bean : IDPRODUTO
at net.sf.jasperreports.engine.data.JRBeanCollectionDataSource.getFieldValue(JRBeanCollectionDataSource.java:126)
at net.sf.jasperreports.engine.fill.JRBaseFiller.next(JRBaseFiller.java:872)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:116)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:622)
at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:116)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:428)
at net.sf.jasperreports.engine.JasperManager.fillReport(JasperManager.java:836)
at br.com.empresa.modelo.TesteRel.main(TesteRel.java:51)
Caused by: java.lang.NoSuchMethodException: Unknown property ‘IDPRODUTO’
at org.apache.commons.beanutils.PropertyUtils.getSimpleProperty(PropertyUtils.java:1175)
at org.apache.commons.beanutils.PropertyUtils.getNestedProperty(PropertyUtils.java:772)
at org.apache.commons.beanutils.PropertyUtils.getProperty(PropertyUtils.java:801)
at net.sf.jasperreports.engine.data.JRBeanCollectionDataSource.getFieldValue(JRBeanCollectionDataSource.java:114)
… 7 more

Existe alguma coisa especial ??? já tentei especificar o nome do campo mas o erro persiste…

Mostra também o Produto.java e o respectivo mapeamento no Hibernate.

então a classe está assim :

package br.com.empresa.modelo;

import javax.persistence.*;
import javax.servlet.http.HttpServletRequest;

import org.apache.struts.action.ActionMapping;

@Entity
public class Produto {
private Long idProduto;
private String descricaoProduto,nome;
private Double preco;
private TipoProduto idTipoProduto;

public String toString(){
	return (idProduto +"  "+ nome +" "+ preco);
}

@Id 
public Long getIdProduto() {
	return idProduto;
}
public void setIdProduto(Long idProduto) {
	this.idProduto = idProduto;
}

@Column(name="descricaoProduto", length=50)
public String getDescricaoProduto() {
	return descricaoProduto;
}
public void setDescricaoProduto(String descricao) {
	this.descricaoProduto = descricao;
}


@Column(name="nome" , nullable=true, length=50)
public String getNome() {
	return nome;
}
public void setNome(String nome) {
	this.nome = nome;
}


@Column(name="preco" , nullable=true)
public Double getPreco() {
	return preco;
}
public void setPreco(Double preco) {
	this.preco = preco;
}


@ManyToOne 
@JoinColumn(name="IDTIPOPRODUTO") 
public TipoProduto getIdTipoProduto() {
	return idTipoProduto;
}
public void setIdTipoProduto(TipoProduto tipoProduto) {
	this.idTipoProduto = tipoProduto;
}

}