Dúvida ao transformar sql em hql

Salve galera! Estou precisando de um help. Não estou conseguindo transformar o sql abaixo em hql:

select c.id, c.nome from Cliente c left join FuncionarioCliente fc on c.id=fc.cliente_id 
where c.empresa_id=1 
and c.status='ATIVO' 
and fc.fim is null
and c.id not in(1,2,3);

Esse sql busca todos os Clientes que não existem em FuncionarioCliente.

E qual o erro que você está tendo?

Ocorreram diversos erros. Atualmente estou usando sql nativo ao invés de hql. Segue o método abaixo:

	@Override
	public List<Cliente> listaClientesNaoAdicionados(Empresa empresa, List<Cliente> clientesAdicionados) {
		List<Cliente> retorno = null;
		StringBuilder sql = new StringBuilder();
		sql.append(" select c.id, c.nome from Cliente c left join FuncionarioCliente fc on c.id=fc.cliente_id  ");
		sql.append(" where c.empresa_id = :empresa ");
		sql.append(" and c.status = :status ");
        sql.append(" and fc.fim is null ");
        if (!clientesAdicionados.isEmpty()) {
            sql.append(" nd c.id not in(:clientes) ");
        }
		Query query = getEntityManager().createNativeQuery(sql.toString());
		query.setParameter("empresa", empresa.getId());
		query.setParameter("status", Status.ATIVO);
        if (!clientesAdicionados.isEmpty()) {
        	query.setParameter("clientes", clientesAdicionados);
        }
		List<Object[]> resp = query.getResultList();
		if(resp!=null && resp.size()>0){
			retorno = new ArrayList<Cliente>();
			for(Object o[] : resp){
				Cliente c = new Cliente();
				c.setId(Long.parseLong(o[0].toString()));
				c.setNome(o[1].toString());
				retorno.add(c);
			}
		}
		return retorno;
	}

HQL/JPQL você aponta para a classe e não para as colunas diretamente.

Leia o post abaixo, ele irá te ajudar.

JPA Consultas e Dicas

Obrigado pela ajuda!