ERROR :JASPER REPORT(java.lang.NoSuchMethodException: Unknown property ' )

@Rodrigo_Void
Ola pessoal,como posso resolver isso? pois o erro persiste somente ao adicionar a tabela de item_venda, já testei de varias maneiras e ainda nada.

nos outros relatorios usei este metodo;

	 @GetMapping("/gerarPDFVendaCodigo/{codigo}")
   public ModelAndView generateReportMateri(ModelAndView m, @PathVariable Long codigo,
    @RequestParam(value = "format", required = false) String format){
        List<Venda> venda = vendaRepository.findByCodigo(codigo);
          m.addObject("dataSource", venda);
          m.addObject("format", "pdf");
    if(format != null && !format.isEmpty()){
        m.addObject("format", format);
    }
    m.setViewName("report_venda_codigo");
    return m;
    }

java.lang.NoSuchMethodException: Unknown property ‘quantidade’ on class ‘class com.diftec.model.Venda’
at org.apache.commons.beanutils.PropertyUtilsBean.getSimpleProperty(PropertyUtilsBean.java:1269) ~[commons-beanutils-1.9.3.jar:1.9.3]
at org.apache.commons.beanutils.PropertyUtilsBean.getNestedProperty(PropertyUtilsBean.java:808) ~[commons-beanutils-1.9.3.jar:1.9.3]
at org.apache.commons.beanutils.PropertyUtilsBean.getProperty(PropertyUtilsBean.java:884) ~[commons-beanutils-1.9.3.jar:1.9.3]
at org.apache.commons.beanutils.PropertyUtils.getProperty(PropertyUtils.java:464) ~[commons-beanutils-1.9.3.jar:1.9.3]
at net.sf.jasperreports.engine.data.JRAbstractBeanDataSource.getBeanProperty(JRAbstractBeanDataSource.java:173) ~[jasperreports-6.3.1.jar:6.3.1]
at net.sf.jasperreports.engine.data.JRAbstractBeanDataSource.getFieldValue(JRAbstractBeanDataSource.java:158) ~[jasperreports-6.3.1.jar:6.3.1]
at net.sf.jasperreports.engine.data.JRBeanCollectionDataSource.getFieldValue(JRBeanCollectionDataSource.java:104) ~[jasperreports-6.3.1.jar:6.3.1]
at net.sf.jasperreports.engine.fill.JRFillDataset.setOldValues(JRFillDataset.java:1489) ~[jasperreports-6.3.1.jar:6.3.1]
at net.sf.jasperreports.engine.fill.JRFillDataset.next(JRFillDataset.java:1390) ~[jasperreports-6.3.1.jar:6.3.1]
at net.sf.jasperreports.engine.fill.JRFillDataset.next(JRFillDataset.java:1366) ~[jasperreports-6.3.1.jar:6.3.1]
at net.sf.jasperreports.engine.fill.JRBaseFiller.next(JRBaseFiller.java:1085) ~[jasperreports-6.3.1.jar:6.3.1]
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:113) ~[jasperreports-6.3.1.jar:6.3.1]
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:582) ~[jasperreports-6.3.1.jar:6.3.1]
at net.sf.jasperreports.engine.fill.BaseReportFiller.fill(BaseReportFiller.java:414) ~[jasperreports-6.3.1.jar:6.3.1]
at net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:121) ~[jasperreports-6.3.1.jar:6.3.1]
at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:667) ~[jasperreports-6.3.1.jar:6.3.1]
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:983) ~[jasperreports-6.3.1.jar:6.3.1]
at org.springframework.web.servlet.view.jasperreports.AbstractJasperReportsView.fillReport(AbstractJasperReportsView.java:681) ~[spring-webmvc-4.3.5.RELEASE.jar:4.3.5.RELEASE]
at

1 curtida

Seu relatório está tentando ler a propriedade “quantidade” de um objeto do tipo "Venda"
Mas a classe “Venda” não possui essa propriedade.

2 curtidas

Blz @staroski!?
Entendi,tentei setar outro objeto do tipo itemVenda e não consegui, como posso resolver isso? ou existe uma maneira mais viavel para solucionar esta exception?

A única maneira é você acessar propriedades que existem.

Você disse que não conseguiu usar o objeto do tipo ItemVenda?
Mas porque não conseguiu?

@staroski não consegui setar neste mesmo metodo.
existe como fazer algo do tipo neste metodo?

    m.addObject("dataSource", venda);
    m.addObject("itemVenda", itemVenda);
    m.addObject("format", "pdf");

Assim o relatorio não funciona fica tudo em branco,como ainda sou um pouco leigo, não sei como ou onde pesquisar a solução, eu peguei esse exemplo na net, porem não sei como fazer para imprimir as vendas com os itens.
se puder me direcionar no caminho certo ficarei muito grato.

@staroski, Pessoal, resolvi, porem não sei se e a melhor maneira, enviei o objeto itemVenda e “setei” cada atributo do objeto pessoa.

             //envio por parametro cada atributo do tipo aluno

              m.addObject("NUMERO_MATRICULA", venda.getAluno().getNumeroMatricula());
 	 	      m.addObject("NOME", venda.getAluno().getNome()); 
 		    
              m.addObject("dataSource", itemVenda);