<p:selectOneMenu value="#{veiculosVendidosResumoBean.empresa.codEmpresa}">
<f:selectItems value="#{veiculosVendidosResumoBean.empresas}"
var="e" itemValue="#{e.codEmpresa}" itemLabel="#{e.nome}" />
</p:selectOneMenu>
Recebo o valor perfeitamente. empresa.codEmpresa é do tipo int.. no meu Banco de dados o campo correspondente é integer. Porem quando vou fazer a busca :
public List<VeiculosVendidosResumo> vendidosResumoEmpresa(Calendar data1, Calendar data2, int codEmpresa){
Query q = em
.createQuery("select NEW br.com.virage.ontranet.relatorios.VeiculosVendidosResumo(v.produto.descricao as produto,count(v.pk.chassiResumido) as qtde, sum(v.valorVenda) as valorVenda, sum(v.valorCustoFabrica) as valorCusto) from Veiculo v where v.status=:status and v.dataVenda>=:data1 and v.dataVenda<=:data2 and v.pk.codEmpresa=:codEmpresa group by v.produto.descricao");
q.setParameter("status", "V");
q.setParameter("data1", data1);
q.setParameter("data2", data2);
q.setParameter("codEmpresa", codEmpresa);
return q.getResultList();
}
Caused by: java.lang.IllegalArgumentException: Parameter value [9] was not matching type [br.com.virage.intranet.modelo.Empresa]
se eu retirar o parametro codEmpresa funciona normalmente. Sei que é erro de tipo de dado.. mas ja testei codEmpresa como int, Integer, Long... Ja testei recebendo o valor da pagina em uma variavel do tipo String e depois convertendo para int ou para long.. e nao consegui soluçao. Olhei em varios tópicos semelhantes e nao consegui adequar a solução ao meu problema.
Alguma sugestão? Desde já agradeço.