3
respostas

setParameter gerando java.lang.UnsupportedOperationException

Quando executo o comando:

query.setParameter("pTipo", TipoMovimentacao.SAIDA");

da  query

"select m from Movimentacao m where m.conta.id = 2 and m.tipo = :pTipo order by m.valor desc"

gera a excessão java.lang.UnsupportedOperationException. Não entendo porque isso acontece. Mais tarde posto o código.

OBS: Quando usa a String SAIDA, funciona:

select m from Movimentacao m where m.conta.id = 2 and m.tipo = SAIDA order by m.valor desc
3 respostas

//Ordenando por tipo

    jpql = "select m from Movimentacao m where m.conta.id = 2 and m.tipo = SAIDA order by m.valor desc";

    query = em.createQuery(jpql);
    //query.setParameter("pTipo", TipoMovimentacao.SAIDA);
    //GERA EXECESSÃO
    resultado = query.getResultList();

    System.out.println("MOVIMENTACOES DA CONTA ORDENADA DESCRESCENTE" + resultado.get(0).getConta().getNumero() );
    System.out.println("Titular da conta " + resultado.get(0).getConta().getTitular() );
    for (Movimentacao movimentacao : resultado) {
        System.out.println(movimentacao.getDescricao());
        System.out.println(movimentacao.getValor());
        System.out.println();
    }

Oi Pedro,

Manda a stack de erro completa dessa UnsupportedOperationException, por favor

Exception in thread "main" java.lang.UnsupportedOperationException: Cannot determine proper mapping model expressable for null
    at org.hibernate.metamodel.model.domain.internal.MappingMetamodelImpl.resolveMappingExpressable(MappingMetamodelImpl.java:704)
    at org.hibernate.query.sqm.internal.SqmUtil.createValueBindings(SqmUtil.java:250)
    at org.hibernate.query.sqm.internal.SqmUtil.createJdbcParameterBindings(SqmUtil.java:234)
    at org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.performList(ConcreteSqmSelectQueryPlan.java:155)
    at org.hibernate.query.sqm.internal.QuerySqmImpl.doList(QuerySqmImpl.java:413)
    at org.hibernate.query.spi.AbstractQuery.list(AbstractQuery.java:1356)
    at org.hibernate.query.Query.getResultList(Query.java:136)
    at br.com.caelum.financas.teste.JPQLTeste.main(JPQLTeste.java:80)