Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Exception ao rodar o codigo

Estou tendo esse erro ao fazer o passo a passo exato da aula.

Hibernate: 
    select
        movimentac0_.id as id1_3_,
        movimentac0_.conta_id as conta_id6_3_,
        movimentac0_.data as data2_3_,
        movimentac0_.descricao as descrica3_3_,
        movimentac0_.tipoMovimentacao as tipoMovi4_3_,
        movimentac0_.valor as valor5_3_ 
    from
        Movimentacao movimentac0_ 
    where
        year(movimentac0_.data)=2017
Exception in thread "main" java.lang.IllegalArgumentException: No enum constant br.com.alura.jpa.modelo.TipoMovimentacao.1
    at java.lang.Enum.valueOf(Enum.java:238)
    at org.hibernate.type.descriptor.java.EnumJavaTypeDescriptor.fromName(EnumJavaTypeDescriptor.java:84)
    at org.hibernate.type.descriptor.java.EnumJavaTypeDescriptor.wrap(EnumJavaTypeDescriptor.java:54)
    at org.hibernate.type.descriptor.java.EnumJavaTypeDescriptor.wrap(EnumJavaTypeDescriptor.java:16)
    at org.hibernate.type.descriptor.sql.VarcharTypeDescriptor$2.doExtract(VarcharTypeDescriptor.java:62)
    at org.hibernate.type.descriptor.sql.BasicExtractor.extract(BasicExtractor.java:47)
    at org.hibernate.metamodel.model.convert.internal.NamedEnumValueConverter.readValue(NamedEnumValueConverter.java:68)
    at org.hibernate.type.EnumType.nullSafeGet(EnumType.java:250)
    at org.hibernate.type.CustomType.nullSafeGet(CustomType.java:119)
    at org.hibernate.type.AbstractType.hydrate(AbstractType.java:91)
    at org.hibernate.persister.entity.AbstractEntityPersister.hydrate(AbstractEntityPersister.java:3059)
    at org.hibernate.loader.Loader.loadFromResultSet(Loader.java:1866)
    at org.hibernate.loader.Loader.hydrateEntityState(Loader.java:1794)
    at org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:1767)
    at org.hibernate.loader.Loader.getRow(Loader.java:1615)
    at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:745)
    at org.hibernate.loader.Loader.processResultSet(Loader.java:1008)
    at org.hibernate.loader.Loader.doQuery(Loader.java:964)
    at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:354)
    at org.hibernate.loader.Loader.doList(Loader.java:2815)
    at org.hibernate.loader.Loader.doList(Loader.java:2797)
    at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2629)
    at org.hibernate.loader.Loader.list(Loader.java:2624)
    at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:506)
    at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:396)
    at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:219)
    at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1396)
    at org.hibernate.query.internal.AbstractProducedQuery.doList(AbstractProducedQuery.java:1558)
    at org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1526)
    at org.hibernate.query.internal.AbstractProducedQuery.getSingleResult(AbstractProducedQuery.java:1574)
    at org.hibernate.query.criteria.internal.compile.CriteriaQueryTypeQueryAdapter.getSingleResult(CriteriaQueryTypeQueryAdapter.java:111)
    at br.com.alura.jpa.modelo.dao.MovimentacaoDao.getMovimentacoesFiltradasPorData(MovimentacaoDao.java:65)
    at br.com.alura.jpa.testes.TestaMovimentacoesFiltradasPorDataCriteria.main(TestaMovimentacoesFiltradasPorDataCriteria.java:19)
4 respostas

Olá, da uma olhada no atributo tipoMovimentacao para ver se tá com as anotações certas.

solução!

Estava tudo certo. Dropei o banco e comecei do zero.

O meu também só funcionou qdo dropei o banco , repopulei ele com a classe PopulaMovimentacoesComCategoria.java e depois rodei a classe de teste TestaMovimentacoesFiltradasPorDataCriteria.java Estranho. Debugando aqui não consegui entender o motivo do mesmo erro que o colega acima teve tbm.

Durante a aula, acabei reproduzindo esse erro mencionado no tópico. O motivo pela qual a exceção foi lançada foi porque o registro no banco referente ao tipo de movimentação estava como "1" ao invés de estar como "SAÍDA" ou "ENTRADA". Possivelmente algum dos testes de inserção de dados corrompeu a base, e após manipular os registros, o teste rodou normalmente.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software