can not be cast to java.util.Map

3

The method below that I created in the model layer, is returning the error "can not be cast to java.util.Map"

public  List<NotaFiscalProduto> listaItens (boolean entSaid, Date dtinicio, Date dtfim){

    Criteria r = this.session.createCriteria(NotaFiscalProduto.class,"nfp");

    if(dtinicio != null && dtfim != null){

        r.createAlias("notafiscal", "nf");

        r.add(Restrictions.and(Restrictions.ge("nf.dataemissao", dtinicio),Restrictions.le("nf.dataemissao", dtfim)));

        r.createAlias("nf.tipomovimento", "tm");

        r.add(Restrictions.eq("tm.tiponf", entSaid));

        r.createAlias("produto", "pd");

        r.setProjection(Projections.projectionList()
                .add(Projections.property("nf.notafiscalid"), "notafiscal.notafiscalid")
                .add(Projections.property("nfp.quantidade"), "quantidade")
                .add(Projections.property("pd.produtoid"), "produto.produtoid")
                .add(Projections.property("pd.nome"), "produto.nome")
                .add(Projections.property("pd.preco"), "produto.preco"))
                .setResultTransformer(Transformers.aliasToBean(NotaFiscalProduto.class));   

        return  (List<NotaFiscalProduto>) r;
    }
    
asked by anonymous 14.11.2016 / 12:19

1 answer

2

The variable r is an instance of Criteria and can not be converted to List . In fact to return the result list you should use the list() method as follows:

return  (List<NotaFiscalProduto>) r.list();
    
14.11.2016 / 12:26