Estou tentando executar o seguinte comando sql no jpa.
@NamedQueries( {
@NamedQuery(name = "HistServico.busca1", query = "SELECT hs FROM HistoricoServico AS hs JOIN hs.agenda AS a WHERE a.animal = :codAnimal")
})
este é comando que eu executo para chamar o sql:
Query q = em.createNamedQuery("HistServico.busca1");
q.setParameter("codAnimal",pedeAnimal.getValue().getCodAnimal());
Dentro da entidade HistoricoServico tenho um join column para agenda atendimento
@ManyToOne(cascade = CascadeType.ALL)
@JoinColumns(@JoinColumn(name="CODAGENDA",referencedColumnName="CODAGENDA"))
private AgendaAtendimento agenda;
Na entidade Agenda Atendimento eu tenho um Join column que aponta para a entidadade animal:
public static final String ANIMAL = "animal";
@OneToOne(cascade = CascadeType.ALL)
@JoinColumns ({
@JoinColumn(name="CODANIMAL", referencedColumnName = "CODANIMAL")
})
@ValidadorCampo(podeNull = false)
private Animal animal;
Mas quando eu filtro pelo código do animal ele me retorna o seguinte erro:
Erro:
java.lang.IllegalArgumentException: You have attempted to set a value of type class java.lang.Integer for parameter codAnimal with expected type of class br.com.mmsistemas.petshop.entidades.Animal from query string SELECT hs FROM HistoricoServico AS hs JOIN hs.agenda AS a WHERE a.animal = :codAnimal.