Tenho uma lista de serviços, nesta lista possuo uma esmalteId, que é uma FK.
O que eu quero é passar o esmalte, e baseado neste esmalte, fazer a busca por esmalteId na tabela serviço.
Estou fazendo desta forma:
Meu método para listar, passando esmalte como parâmetro
public List<Servico> listServicosByEsmalteId(Esmalte esmalte) {
Query query = em.createQuery("select s.esmalteId from Servico s where s.esmalteId = :esmalteId");
query.setParameter("esmalteId", esmalte);
return query.getResultList();
}
Não se eu entendia o seu problema mais vamos lá.
Tenta alterar o seu método para:
public List<Servico> listServicosByEsmalteId(Esmalte esmalte) {
Query query = em.createQuery(“select s from Servico s where s.esmalteId = :esmalteId”);
query.setParameter(“esmalteId”, esmalte);
return query.getResultList();
}
Acho que assim o retorno será uma lista de obejtos Servico
esmalteId é um Long certo? Sendo, a consulta que você está fazendo vai te retornar uma lista de Long e não de Serviços. Se é isso que você quer, tente assim:
public List<Long> listServicosByEsmalteId(Esmalte esmalte) {
Query query = em.createQuery("select s.esmalteId from Servico s where s.esmalteId = :esmalteId");
query.setParameter("esmalteId", esmalte.getId());
return query.getResultList();
}