Aos 5:34 do vídeo foi criado o seguinte trecho de código: Query query = manager. createQuery("select m from Movimentacao m where m.conta.id=:pConta");
query.setParameter("pConta", conta);
Eu fiz exatamente dessa forma e ao executar tive a seguinte exceção:
Exception in thread "main" java.lang.IllegalArgumentException: Parameter value [ null null null null] did not match expected type [java.lang.Integer (n/a)] at org.hibernate.jpa.spi.BaseQueryImpl.validateBinding(BaseQueryImpl.java:897) at org.hibernate.jpa.internal.QueryImpl.access$000(QueryImpl.java:61) at org.hibernate.jpa.internal.QueryImpl$ParameterRegistrationImpl.bindValue(QueryImpl.java:235) at org.hibernate.jpa.spi.BaseQueryImpl.setParameter(BaseQueryImpl.java:638) at org.hibernate.jpa.spi.AbstractQueryImpl.setParameter(AbstractQueryImpl.java:163) at org.hibernate.jpa.spi.AbstractQueryImpl.setParameter(AbstractQueryImpl.java:32) at br.com.caelum.financas.util.TestaConsulta.main(TestaConsulta.java:24)
Minha classe só funcionou quando alterei o código de: query.setParameter("pConta", conta);
para: query.setParameter("pConta", conta.getId());
Gostaria de saber porque foi lançada a exceção.