Casting de Query

Boa tarde eu precurei e não encontrei solução para minha duvida.

public Cliente getEditarCliente(long clienteId ){
Query query;
query = em.createNativeQuery(“select cliente_id,cliente_name,cliente_idade,\n” +
“case \n” +
“When cliente_sexo = ‘M’ then ‘Masculino’\n” +
“When cliente_sexo = ‘F’ then ‘Feminino’\n” +
“end as sexo\n” +
"from cliente where cliente_id = "+clienteId);

  //query.setParameter("P_clienteId",clienteId);
  return (Cliente)query.getSingleResult();
}

estou fazendo alguns testes para aprendizado próprio criei uma tabela de cliente sem relacionamento algum,
quero simplesmente pegar o resulado da query e jogar na tela usando JSF com JDeveloper.

da erro de casting.

alguém pode me ajudar ??

Select cliente_id, cliente_name, cliente_idade não dá SingleResult()…

Tenta assim ou parecido, tirei algo muito parecido em uma apostina da K19


List<Object[]> lista = query.getResultList();

for(Object[] obj : lista) {
System.out.println("cliente_id: " + obj [0]);
System.out.println("cliente_name: " + obj [1]);
System.out.println("cliente_idade: " + obj [2]);
System.out.println("cliente_sexo: " + obj [3]);
}

se rolar é só criar um objeto cliente com os dados do array…

Cliente c= new Cliente();
c.setName=obj[0];
//demais set's