Caused by: java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.Integer
at br.com.duxsolutions.repository.GrupoContaRepository.contaCount(GrupoContaRepository.java:44)
at br.com.duxsolutions.bean.ContasBean.geraCodigoConta(ContasBean.java:238)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.apache.el.parser.AstValue.invoke(AstValue.java:262)
at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:278)
at javax.faces.event.MethodExpressionActionListener.processAction(MethodExpressionActionListener.java:153)
... 29 more
Já tentei retornar um Long mas tive o mesmo problema … Alguem sabe o que pode ser ?
Bem, o meu Id é Integer então o relacionamento será Integer tb, correto ?
Cara, você entende o código que você está mexendo? Parou para analisar o código e entender o código? Ou o que você está fazendo? Parou para pensar que você está passando um parâmetro em uma query que exige um valor igual? talvez falta alterar sua classe?
Diego_Adriano
Sim, analisei o que estou fazendo.
Quero retorna a quantidade de “IDs” inseridos com o Relacionamento passado.
Agora, um Count ele retorna um Integer ou Long ? Pois a consulta funciona no SQL então a forma que estou fazendo esta correta não esta ?
Alterar a Classe ? Pq ?
Hebert_Coelho
Diego Adriano:
Sim, analisei o que estou fazendo.
Quero retorna a quantidade de “IDs” inseridos com o Relacionamento passado.
Agora, um Count ele retorna um Integer ou Long ? Pois a consulta funciona no SQL então a forma que estou fazendo esta correta não esta ?
Alterar a Classe ? Pq ?
Você precisa alterar caso sua classe seja long.
Para utilizar count veja aqui como se faz: JPA Consultas e Dicas.
Diego_Adriano
Resolvi, o Count retorna um Long, por isso estava dando erro:
public Long contaCount(Integer id){
Query query = this.entityManager.createNamedQuery("contacontabil.count");
query.setParameter("id", id);
return (Long) query.getSingleResult();
}