JRException estranha.. E repetição

Boa tarde!
Tô tentando gerar um relatório e no momento que mando gerar ele lança JRException.
Além disso, ele tá sendo feito duas vezes (então lança 2 excessões iguais).

JRException:

net.sf.jasperreports.engine.JRException: Error retrieving field value from bean : conta_id
	at net.sf.jasperreports.engine.data.JRAbstractBeanDataSource.getBeanProperty(JRAbstractBeanDataSource.java:123)
	at net.sf.jasperreports.engine.data.JRAbstractBeanDataSource.getFieldValue(JRAbstractBeanDataSource.java:96)
	at net.sf.jasperreports.engine.data.JRBeanCollectionDataSource.getFieldValue(JRBeanCollectionDataSource.java:100)
	at net.sf.jasperreports.engine.fill.JRFillDataset.setOldValues(JRFillDataset.java:864)
	at net.sf.jasperreports.engine.fill.JRFillDataset.next(JRFillDataset.java:828)
	at net.sf.jasperreports.engine.fill.JRBaseFiller.next(JRBaseFiller.java:1439)
	at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:127)
	at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:903)
	at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:832)
	at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:84)
	at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:624)
	at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:605)
	at relatorio.Relatorios.geraRelatorio(Relatorios.java:46)
	at relatorio.Relatorios.<init>(Relatorios.java:26)
	at controle.ControlePrincipal.actionPerformed(ControlePrincipal.java:70)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
	at javax.swing.AbstractButton.doClick(AbstractButton.java:357)
	at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:809)
	at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:850)
	at java.awt.Component.processMouseEvent(Component.java:6288)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
	at java.awt.Component.processEvent(Component.java:6053)
	at java.awt.Container.processEvent(Container.java:2041)
	at java.awt.Component.dispatchEventImpl(Component.java:4651)
	at java.awt.Container.dispatchEventImpl(Container.java:2099)
	at java.awt.Component.dispatchEvent(Component.java:4481)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
	at java.awt.Container.dispatchEventImpl(Container.java:2085)
	at java.awt.Window.dispatchEventImpl(Window.java:2478)
	at java.awt.Component.dispatchEvent(Component.java:4481)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:643)
	at java.awt.EventQueue.access$000(EventQueue.java:84)
	at java.awt.EventQueue$1.run(EventQueue.java:602)
	at java.awt.EventQueue$1.run(EventQueue.java:600)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
	at java.awt.EventQueue$2.run(EventQueue.java:616)
	at java.awt.EventQueue$2.run(EventQueue.java:614)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:613)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Caused by: java.lang.NoSuchMethodException: Unknown property 'conta_id' on class 'class modelo.MovimentoFinanceiro'
	at org.apache.commons.beanutils.PropertyUtilsBean.getSimpleProperty(PropertyUtilsBean.java:1322)
	at org.apache.commons.beanutils.PropertyUtilsBean.getNestedProperty(PropertyUtilsBean.java:770)
	at org.apache.commons.beanutils.PropertyUtilsBean.getProperty(PropertyUtilsBean.java:846)
	at org.apache.commons.beanutils.PropertyUtils.getProperty(PropertyUtils.java:426)
	at net.sf.jasperreports.engine.data.JRAbstractBeanDataSource.getBeanProperty(JRAbstractBeanDataSource.java:111)
	... 52 more

Classe que gera o relatório:

// ...

public class Relatorios {

    public Relatorios(String tipo) {
        geraRelatorio(tipo);
    }

    // Gera relatório
    private void geraRelatorio(String tipo) {
        DAOMovimentoFinanceiro dao = new DAOMovimentoFinanceiro();
        java.util.Date data = new java.util.Date();
        List lista;
        JRBeanCollectionDataSource jr;
        Map parameters;
        InputStream is;
        JasperPrint print;

        if (tipo.equals("Fluxo de Caixa")) {

            try {
                lista = dao.consultaPorData(data);
                jr = new JRBeanCollectionDataSource(lista, false);
                parameters = new HashMap();
                is = this.getClass().getResourceAsStream("fluxoCaixa.jasper");
                print = JasperFillManager.fillReport(is, parameters, jr);
                JasperViewer.viewReport(print, false);
            } catch (JRException ex) {
                ex.printStackTrace();
            }

// ...

Método consultarPorData no DAO

public List consultaPorData(Date data){
        return getSessao().createCriteria(MovimentoFinanceiro.class)
                .add(Restrictions.gt("data", data))
                .addOrder(Order.asc("data")).list();
    }

Classe MovimentoFinanceiro:


@Entity
public class MovimentoFinanceiro implements Serializable {
    
    private int id;
    private String numDocumento, historico;
    private Date data;
    private BigDecimal valor;
    private Conta conta;
    private Codigo codigo;
    private Obra obra;
    private boolean realizado = false;
    private String tipo;
    private Favorecido favorecido;
    
    
    
    /* Getters and Setters */
    
    // ....

    @ManyToOne(fetch = FetchType.LAZY)
    public Conta getConta() {
        return conta;
    }

    public void setConta(Conta conta) {
        this.conta = conta;
    }

    // ...

}

Classe Conta:

@Entity
public class Conta implements Serializable {
    
    
    private int conta_id;
    private String nome;
    private String banco;
    private BigDecimal qtdCaixa;

    @Id
    @GeneratedValue
    @Column(name = "id")
    public int getId() {
        return conta_id;
    }

    //...

Sem querer ser chato, mas se vc criou um topico e resolveu o seu problema, mesmo que vc tenha resolvido sem ajuda de ninguem, seria otimo se vc colocasse a solucao do seu problema ou invez de editar e o topico, e mudar o tituto para [Apagar].

A resolucao do seu problema pode ajudar alguem.

//Daniel

Eu sempre faço isso, pode ver pelas minhas mensagens.
Mas dessa vez eu postei por falta de atenção, apenas.
Mas agora vou editar novamente pra botar um erro que tive.

windsofhell ou algum outro saberia me ajudar?

na linha 55 ta dizendo o erro, nao existe o atributo conta_id na classe modelo.MovimentoFinanceiro.
corrige essa parte no seu relatorio.

Isso era um erro na forma como eu pegava os dados no iReport. Eu só estava usando a query, ao invés de usar javabeans.

Mas agora um outro erro permanece. O relatório Fluxo de Caixa tá sendo gerado 2x, sendo que ele tem a mesma forma de construção do outro relatório (e esse outro está funcionando certinho).

Classe Gerador

public Gerador(String tipo){
        Map mapaRelatorios = new HashMap();
        mapaRelatorios.put("Contas a Pagar", new ContasPagar());
        mapaRelatorios.put("Fluxo de Caixa", new FluxoCaixa());
        Relatorios relatorios = (Relatorios) mapaRelatorios.get(tipo);
        relatorios.geraRelatorio(); 
    }

Classe FluxoCaixa (que tá gerando repetido):

public class FluxoCaixa implements Relatorios {

    @Override
    public void geraRelatorio() {
        DAOMovimentoFinanceiro dao = new DAOMovimentoFinanceiro();
        java.util.Date data = new java.util.Date();
        List lista;
        JRBeanCollectionDataSource jr;
        Map parameters;
        InputStream is;
        JasperPrint print;

            try {
                lista = dao.consultaPorData(data);
                jr = new JRBeanCollectionDataSource(lista);
                parameters = new HashMap();
                is = this.getClass().getResourceAsStream("fluxoCaixa.jasper");
                print = JasperFillManager.fillReport(is, parameters, jr);
                JasperViewer.viewReport(print, false);
            } catch (JRException ex) {
                ex.printStackTrace();
            }
    }
    
}

o relatorio “Contas a Pagar” é gerado correto isso ?
a classe contas a pagar tem codigo parecido com a fluxo de caixa, o que muda é somente o arquivo jasper correto ?
se for isso entao pode ser que tem algum detalhe no seu fluxocaixa.jasper que esteja fazendo gerar duplicado, dai so analisando o jasper para saber.